Chainlink VRF. Часть 4.1
Каких-то особенных функций при генерации случайных чисел в документации я не нашел. Их там по сути всего две-три основные. Поэтому я решил использовать код представленный на сайте по ссылке. Вы также можете открыть его в Ремиксе онлайн и изучить.
Давайте пройдемся по коду.
Итак, в начале импортируются три контракта: ConfirmedOwner устанавливает нас (msg.sender), как владельца, VRFCoordinatorV2Interface - контракт Координатор для данной сети, VRFConsumerBaseV2 - обрабатывает ответ от Координатора.
Далее порождаются два event, чтобы в личном кабинете мы видели транзакции, создается структура RequestStatus, отвечающая за статусы запросов, mapping для хранения полученных чисел, а также несколько переменных для нашего ID, id последнего запроса.
Обратите внимание на keyhash, для разных сетей он будет отличаться. Посмотреть keyhash для своего проекта можно по этой ссылке.
Вообще keyhash отвечает за то, сколько газа в wei вы готовы заплатить за транзакцию. Чем больше это число, тем быстрее пройдет транзакция.
callbackGasLimit - отвечает за вызов callback функции в нашем контракте fulfillRandomWords(). Она должна быть меньше MaxGasLimit в контракте Координатора. Если указать ее слишком маленькой, то полученные сгенерированные числа просто не сохранятся в нашем контракте.
requestConfirmations - сколько подтверждений узел Chainlink должен подождать прежде чем ответить. Он должен быть в пределах Minimum и Maximum конфигурации.
numWords - сколько случайных чисел нам нужно получить. Их количество влияет на количество газа в callbackGasLimit. Будьте тут внимательны. Также это значение не должно превышать значение VRFCoordinatorV2.MAX_NUM_WORDS.
#chainlink #vrf #random
Post #275
130
- 👍 1