Chainlink VRF: Аргументы кодирования ошибки: Ошибка: недопустимая строка BigNumber

Я пытаюсь получить случайное число с помощью Chainlink VRF, поэтому, привет, следуйте этой демонстрации шаг за шагом: https://www.youtube.com/watch?v=JqZWariqh5s

вот что я скопировал на Remix:

      pragma solidity 0.6.6;

import "https://raw.githubusercontent.com/smartcontractkit/chainlink/master/evm-contracts/src/v0.6/VRFConsumerBase.sol";

contract RandomNumberConsumer is VRFConsumerBase {
    
    bytes32 public keyHash;
    uint256 public fee;
    uint256 public randomResult;
    
    constructor() VRFConsumerBase(
            0xdD3782915140c8f3b190B5D67eAc6dc5760C46E9, // VRF Coordinator
            0xa36085F69e2889c224210F603D836748e7dC0088  // LINK Token
        ) public
    {
        keyHash = 0x6c3699283bda56ad74f6b855546325b68d482e983852a7a82979cc4807b641f4;
        fee = 0.1 * 10 ** 18; // 0.1 LINK
    }
    

    function getRandomNumber(uint256 userProvidedSeed) public returns (bytes32 requestId) {
        return requestRandomness(keyHash, fee, userProvidedSeed);
    }

    function fulfillRandomness(bytes32 requestId, uint256 randomness) internal override {
        randomResult = randomness.mod(50).add(1);
    }
}

когда я нажимаю getRandomNumber , я всегда получаю эту ошибку: Ошибка кодирования аргументов: Ошибка: недопустимая строка BigNumber (аргумент = "значение", значение = "", код = INVALID_ARGUMENT, версия = bignumber / 5.0.8)

и с fillRandomness я получаю эту ошибку: Аргументы кодирования ошибки: Ошибка: недопустимое значение arrayify (аргумент = "значение", значение = "", код = INVALID_ARGUMENT, версия = байты / 5.0.5)

2 ответа

Решение

Добавь немного seed номер в функцию, а затем щелкните его.

Кроме того, не забудьте пополнить его с помощью ССЫЛКИ.

Кроме того, функция performRandomness может быть вызвана только VRF Chainlink, так что не беспокойтесь об этой части.

Похоже, вы не проезжаете userProvidedSeed в качестве аргумента getRandomNumber()

Попробуйте ввести любое число в поле рядом с getRandomNumber в Remix, а затем щелкните метод.

Кроме того, функция performRandomness может быть вызвана только VRF Chainlink, поэтому не беспокойтесь о вызове этой функции.

Другие вопросы по тегам