Интеграция с Axelar

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Интеграция с Axelar
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • 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
    1060
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

Интеграция с Axelar

Axelar — decentralized cross-chain communication network. В отличие от мостов с multisig валидаторами (Multichain, Ronin), Axelar использует proof-of-stake сеть с ~75 валидаторами и threshold signatures. Компрометация требует контроля 2/3 валидаторов по стейку — значительно выше порог атаки, чем у 5-of-9 multisig.

Что умеет Axelar

GMP (General Message Passing) — передача произвольных сообщений между цепями. Не только токены: можно вызвать функцию смарт-контракта в другой цепи с произвольными данными.

Canonical token bridging — стандартизированный перевод токенов. USDC через Axelar — это Circle's native USDC (через Circle CCTP) или Axelar Wrapped USDC (axlUSDC), в зависимости от настройки.

Squid — DEX агрегатор поверх Axelar, позволяет делать cross-chain swaps в одну транзакцию (swap на исходной цепи + bridge + swap на целевой).

GMP интеграция

Контракт на исходной цепи

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import { AxelarExecutable } from "@axelar-network/axelar-gmp-sdk-solidity/contracts/executable/AxelarExecutable.sol";
import { IAxelarGateway } from "@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IAxelarGateway.sol";
import { IAxelarGasService } from "@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IAxelarGasService.sol";

contract SourceContract {
    IAxelarGateway public gateway;
    IAxelarGasService public gasService;
    
    constructor(address _gateway, address _gasService) {
        gateway = IAxelarGateway(_gateway);
        gasService = IAxelarGasService(_gasService);
    }
    
    function sendCrossChainMessage(
        string calldata destinationChain,      // "Polygon", "avalanche", "binance"
        string calldata destinationAddress,    // адрес контракта-получателя
        bytes calldata payload
    ) external payable {
        // Оплачиваем газ для исполнения на целевой цепи
        gasService.payNativeGasForContractCall{value: msg.value}(
            address(this),
            destinationChain,
            destinationAddress,
            payload,
            msg.sender
        );
        
        // Отправляем сообщение
        gateway.callContract(destinationChain, destinationAddress, payload);
    }
}

Контракт на целевой цепи

contract DestinationContract is AxelarExecutable {
    event MessageReceived(string sourceChain, string sourceAddress, bytes payload);
    
    constructor(address gateway) AxelarExecutable(gateway) {}
    
    // Вызывается Axelar когда сообщение доставлено
    function _execute(
        string calldata sourceChain,
        string calldata sourceAddress,
        bytes calldata payload
    ) internal override {
        // Декодируем payload
        (address recipient, uint256 amount) = abi.decode(payload, (address, uint256));
        
        // Выполняем бизнес-логику
        _processMessage(sourceChain, sourceAddress, recipient, amount);
        
        emit MessageReceived(sourceChain, sourceAddress, payload);
    }
}

Оплата газа на целевой цепи

Ключевая деталь Axelar GMP — Gas Service. Пользователь оплачивает газ для обеих цепей в одной транзакции (на исходной цепи). Axelar Gas Service конвертирует нативный токен и оплачивает реле на целевой цепи.

Расчёт нужного газа через AxelarGMPRecoveryAPI:

import { AxelarQueryAPI, Environment, GasToken } from "@axelar-network/axelarjs-sdk";

const api = new AxelarQueryAPI({ environment: Environment.MAINNET });

const gasEstimate = await api.estimateGasFee(
  "Ethereum",           // source chain
  "Polygon",            // destination chain
  GasToken.ETH,
  300_000,              // gas limit на destination
  1.1                   // 10% buffer
);

// gasEstimate — сумма в wei для передачи в payNativeGasForContractCall

Token Transfer с GMP

Для transfer токена + вызов функции на целевой цепи — callContractWithToken:

function sendTokenAndCall(
    string calldata destinationChain,
    string calldata destinationAddress,
    bytes calldata payload,
    string calldata symbol,  // "USDC", "WETH"
    uint256 amount
) external payable {
    IERC20(gateway.tokenAddresses(symbol)).transferFrom(msg.sender, address(this), amount);
    IERC20(gateway.tokenAddresses(symbol)).approve(address(gateway), amount);
    
    gasService.payNativeGasForContractCallWithToken{value: msg.value}(
        address(this), destinationChain, destinationAddress, payload, symbol, amount, msg.sender
    );
    
    gateway.callContractWithToken(destinationChain, destinationAddress, payload, symbol, amount);
}

Поддерживаемые цепи

Axelar поддерживает 50+ цепей: Ethereum, Polygon, Avalanche, BNB Chain, Fantom, Arbitrum, Optimism, Base, Linea, Scroll, Near, Cosmos экосистема (через IBC).

Cosmos интеграция — уникальное преимущество Axelar: единственный из major cross-chain протоколов с реальной EVM ↔ Cosmos связью.

Squid интеграция для cross-chain swaps

import { Squid } from "@0xsquid/sdk";

const squid = new Squid({ baseUrl: "https://apiplus.squidrouter.com" });
await squid.init();

const { route } = await squid.getRoute({
  fromAddress: userAddress,
  fromChain: "1",                // Ethereum
  fromToken: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", // ETH
  fromAmount: "1000000000000000000", // 1 ETH
  toChain: "137",                // Polygon
  toToken: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174", // USDC
  toAddress: recipientAddress,
  slippage: 1.0,                 // 1%
  enableBoost: true,
});

// Выполнение свапа
const tx = await signer.sendTransaction(route.transactionRequest);

Интеграция с Axelar GMP — 2-4 недели. Включает: деплой контрактов на нескольких цепях, настройку газ-оплаты, мониторинг статуса транзакций через AxelarScan API, тестирование на testnet (Axelar testnet поддерживает все major EVM testnets).