Chainlink Automation / Keeper. Часть 4
Стоит отметить еще несколько нюансов по данному сервису.
Во-первых, вы можете создать свой Upkeep контракт, а не использовать автоматизированный вариант на сайте. По ссылке представлен пример кода такого контракта.
Тут все также просто. Он должен наследовать от двух других контрактов chainlink:
import {AutomationRegistryInterface, State, Config} from "@chainlink/contracts/src/v0.8/interfaces/AutomationRegistryInterface1_2.sol";
import {LinkTokenInterface} from "@chainlink/contracts/src/v0.8/interfaces/LinkTokenInterface.sol";
а также интерфейс KeeperRegistrarInterface.
Здесь представлена одна функция registerAndPredictID(), которая, по своей сути, делает все тоже, что и сайт. На данном этапе я так и не понял, зачем создавать Upkeep контракт самому. Возможно, для каких-то кастомных решений.
Во-вторых, следите, чтобы большинство проверок условий происходило в функции checkUpkeep(), так как она "view" и потребляет намного меньше газа, чем performUpkeep().
В-третьих, делайте дополнительные проверки при проверки и соблюдения условий! Так вы повысите безопасность от внешних вызовов функций.
В-четвертых, проверяйте свои контракты в тестовых сетях прежде, чем вы будете делать это в mainnet.
#chainlink #keeper #automation
Post #294
124