Интеграция с Gelato Network (автоматизация)

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Интеграция с Gelato Network (автоматизация)
Простая
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1056
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

Интеграция с Gelato Network (автоматизация)

Блокчейн не запускает функции по расписанию. Если контракту нужно каждые 24 часа rebalance пул, начислять стейкинг-награды или ликвидировать позиции — кто-то должен вызывать эти функции извне. Gelato Network — децентрализованная сеть ботов (executors), которые мониторят условия и отправляют транзакции автоматически.

Два режима работы

Gelato Automate (старый подход, Ops). Задача создаётся через UI или SDK, executor вызывает указанную функцию по расписанию или условию. Оплата в GELATO (нативный токен) или ETH из баланса контракта.

Web3 Functions (текущий стандарт). Off-chain JavaScript/TypeScript функция, которая запускается на ноде Gelato, может делать HTTP запросы, читать off-chain данные и возвращает calldata для on-chain транзакции. Это решает проблему, когда для принятия решения нужны данные вне чейна — цена на CEX, результат API запроса, данные из The Graph.

Интеграция через AutomateTaskCreator

Наследование от AutomateTaskCreator даёт контракту возможность создавать задачи Gelato программно:

import {AutomateTaskCreator} from "@gelatonetwork/automate-sdk/contracts/AutomateTaskCreator.sol";

contract MyVault is AutomateTaskCreator {
    bytes32 public rebalanceTaskId;

    constructor(address _automate, address _taskCreatorProxy)
        AutomateTaskCreator(_automate, _taskCreatorProxy) {}

    function startRebalancing() external onlyOwner {
        ModuleData memory moduleData = ModuleData({
            modules: new Module[](2),
            args: new bytes[](2)
        });

        moduleData.modules[0] = Module.TIME;
        moduleData.modules[1] = Module.PROXY;

        moduleData.args[0] = _timeModuleArg(block.timestamp, 1 days);
        moduleData.args[1] = _proxyModuleArg();

        rebalanceTaskId = _createTask(
            address(this),
            abi.encodeCall(this.rebalance, ()),
            moduleData,
            address(0)  // платим в ETH из контракта
        );
    }

    function rebalance() external onlyDedicatedMsgSender {
        // логика ребаланса
    }
}

onlyDedicatedMsgSender — важный modifier: только Gelato может вызвать эту функцию, не произвольный адрес.

Gasless выполнение (Relay)

Gelato Relay позволяет пользователям отправлять транзакции без ETH — Gelato оплачивает газ, а контракт компенсирует это в ERC-20 токенах через _transferRelayFee():

import {GelatoRelayContextERC2771} from "@gelatonetwork/relay-sdk/contracts/GelatoRelayContextERC2771.sol";

contract GaslessNFT is GelatoRelayContextERC2771 {
    function safeMint(address to) external onlyGelatoRelayERC2771 {
        _mint(to, tokenId++);
        _transferRelayFee(); // оплачиваем Gelato из баланса контракта
    }
}

ERC2771 часть: пользователь подписывает транзакцию off-chain, Gelato пересылает её через trusted forwarder, контракт видит реального _msgSender() через ERC-2771 контекст.

Web3 Functions для off-chain логики

Скрипт на TypeScript запускается на нодах Gelato и может:

import { Web3Function, Web3FunctionContext } from "@gelatonetwork/web3-functions-sdk";

Web3Function.onRun(async (context: Web3FunctionContext) => {
    const { multiChainProvider, secrets } = context;
    const provider = multiChainProvider.default();

    // Получаем данные с внешнего API
    const response = await fetch("https://api.coingecko.com/api/v3/simple/price?ids=ethereum&vs_currencies=usd");
    const { ethereum } = await response.json();

    if (ethereum.usd < 2000) {
        const contract = new ethers.Contract(VAULT_ADDRESS, VAULT_ABI, provider);
        const callData = contract.interface.encodeFunctionData("triggerEmergency", []);
        return { canExec: true, callData: [{ to: VAULT_ADDRESS, data: callData }] };
    }

    return { canExec: false, message: "Price above threshold" };
});

Оплата и экономика

Gelato берёт комиссию поверх стоимости газа. Для Automate: баланс пополняется в ETH на контракте или в Gelato Treasury. Для Relay: комиссия ~10% от gas cost. Для Web3 Functions: дополнительная плата за вычисления.

На высоконагруженных задачах (ликвидации, арбитраж) Gelato конкурирует с Chainlink Automation и кастомными keeper-ботами. Для задач с умеренной частотой (раз в час — раз в день) Gelato оптимален по соотношению простоты интеграции и стоимости.

Сроки

Базовая интеграция Automate с time-based задачей: 1 день. Web3 Function с off-chain логикой и Relay: 2-3 дня. Тестирование на testnet (Gelato поддерживает Sepolia, Mumbai/Amoy, Arbitrum Goerli) включено в оценку.

Стоимость рассчитывается после уточнения частоты задач и сложности off-chain логики.