Chainlink Automation / Keeper. Часть 2
Вся работа с Automation происходит на сервисе Chainlink по этому адресу. Здесь можно настроить параметры вызова функций в своем контракте через определенный момент времени или по каким-то другим параметрам.
Вся прелесть в том, что, если раньше, при написании своего контракта, нам нужно было создавать наследование от контракта Chainlink и прописывать callback функции, то теперь ничего этого делать не нужно для Time-base контракта.
Напомню, time-base контракт, это, например, когда вам нужно, чтобы функция в нем была исполнения через час, или через день, или в определенную дату.
Итак, вы создаете свой контракт и прописываете функцию, которую хотите чтобы была выполнена через определенный промежуток времени. Например, такой супер короткий контракт:
contract {
uint public counter;
constructor() {
counter =0;
}
function count() external {
counter = counter +1;
}
}
Тут я хочу, чтобы count() вызывалась каждые пять минут.
Обратите внимание, что НЕ НУЖНО подключать никакие интерфейсы или контракты от Chainlink, а также прописывать обязательные callback функции. Тут я пишу только функции для работы моего контракта и все!
Далее я делаю деплой контракта и перехожу на сервис chainlink. Регистрируюсь с помощью Метамаск кошелька и создаю новый Upkeep.
По сути, Upkeep - это тоже контракт, который отслеживает условия вызова функции в нашем контракте.
В Upkeep выбираю опцию Time-based и вставляю в поле ниже адрес контракта.
Если код нашего контракта еще не верифицирован, то вы можете использовать его ABI. В директории проекта его можно найти в папке artifacts, а в Remix в разделе Compile в самом низу.
После этого выбираете промежуток времени в формате Cron. Он довольно простой к пониманию. Потренироваться с ним можно на сайте по этой ссылке.
Далее в Upkeep мы указываем функцию, которую хотим вызывать. Учтите, она должна быть помечена, как external, иначе ничего не будет работать.
В завершении, даете название своему Upkeep, указываете лимит газа, который не должен превышать общесетевой, посмотреть можно тут, и даете свой емайл. На него будет отсылаться информация о недостатке средств.
Также, только на этом этапе нужно пополнить баланс токенами Link. Другими словами, мы пополняем НЕ наш контракт, как это было в случае других сервисов, а именно Upkeep.
Готово! Теперь сервис будет вызывать нашу функцию count() каждые пять минут. Вам остается только следить за балансом Link!
Далее рассмотрим контракты с пользовательскими условиями.
#chainlink #keeper #automation #time #timebase #cron
Вся работа с Automation происходит на сервисе Chainlink по этому адресу. Здесь можно настроить параметры вызова функций в своем контракте через определенный момент времени или по каким-то другим параметрам.
Вся прелесть в том, что, если раньше, при написании своего контракта, нам нужно было создавать наследование от контракта Chainlink и прописывать callback функции, то теперь ничего этого делать не нужно для Time-base контракта.
Напомню, time-base контракт, это, например, когда вам нужно, чтобы функция в нем была исполнения через час, или через день, или в определенную дату.
Итак, вы создаете свой контракт и прописываете функцию, которую хотите чтобы была выполнена через определенный промежуток времени. Например, такой супер короткий контракт:
contract {
uint public counter;
constructor() {
counter =0;
}
function count() external {
counter = counter +1;
}
}
Тут я хочу, чтобы count() вызывалась каждые пять минут.
Обратите внимание, что НЕ НУЖНО подключать никакие интерфейсы или контракты от Chainlink, а также прописывать обязательные callback функции. Тут я пишу только функции для работы моего контракта и все!
Далее я делаю деплой контракта и перехожу на сервис chainlink. Регистрируюсь с помощью Метамаск кошелька и создаю новый Upkeep.
По сути, Upkeep - это тоже контракт, который отслеживает условия вызова функции в нашем контракте.
В Upkeep выбираю опцию Time-based и вставляю в поле ниже адрес контракта.
Если код нашего контракта еще не верифицирован, то вы можете использовать его ABI. В директории проекта его можно найти в папке artifacts, а в Remix в разделе Compile в самом низу.
После этого выбираете промежуток времени в формате Cron. Он довольно простой к пониманию. Потренироваться с ним можно на сайте по этой ссылке.
Далее в Upkeep мы указываем функцию, которую хотим вызывать. Учтите, она должна быть помечена, как external, иначе ничего не будет работать.
В завершении, даете название своему Upkeep, указываете лимит газа, который не должен превышать общесетевой, посмотреть можно тут, и даете свой емайл. На него будет отсылаться информация о недостатке средств.
Также, только на этом этапе нужно пополнить баланс токенами Link. Другими словами, мы пополняем НЕ наш контракт, как это было в случае других сервисов, а именно Upkeep.
Готово! Теперь сервис будет вызывать нашу функцию count() каждые пять минут. Вам остается только следить за балансом Link!
Далее рассмотрим контракты с пользовательскими условиями.
#chainlink #keeper #automation #time #timebase #cron