Chainlink VRF. Часть 6
Далее рассмотрим контракт для разового получения случайного числа без создания личного кабинета и регистрации на сервисе.
Идем по этой ссылке и также открываем код в Ремиксе.
Прежде всего нужно отметить, что помимо контракта Координатора, нам нужно указывать контракт Wrapper, которого нет в Подписной модели.
Конфигурации сетей для разовых запросов можно посмотреть тут.
В целом логика контракта схожа с контрактом, который я разбирал для Подписной модели, поэтому тут буду обращать внимание только на различия.
Итак, в данном коде появляются новые переменные: linkAddress и wrapperAddress, куда записываются адреса контрактов токена и wrapper. Их все можно найти в конфигурации.
Функции requestRandomWords(), fulfillRandomWords() и getRequestStatus() делают все то же, что и описанные ранее.
И добавляется функция withdrawLink(). Сейчас объясню зачем она нужна.
Помните, при создании личного кабинета мы зачисляли на его счет некоторую сумму Link? Так вот, в разовом контракте, нам нужно перечислить туда токены после деплоя напрямую из нашего кошелька. Без этого мы не сможем вызывать функции генерации номеров.
И функция withdrawLink() нужна для того чтобы вернуть неиспользованные Link обратно на кошелек с контракта, если таковые будут после запроса.
#chainlink #vrf #random
Post #278
129
- 👍 1