Інтеграція з Axelar

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Інтеграція з Axelar
Середній
~3-5 днів
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1306
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1218
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    920
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1147
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    610
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    885

Інтеграція з Axelar

Axelar — децентралізована мережа кросс-чейн комунікації. На відміну від мостів з multisig валідаторами (Multichain, Ronin), Axelar використовує proof-of-stake мережу з ~75 валідаторами та threshold підписами. Компромісс вимагає контролю 2/3 валідаторів по стейку — значно вищий поріг атаки, ніж 5-з-9 multisig.

Що умає Axelar

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

Canonical token bridging — стандартизований трансфер токенів. USDC через Axelar — це або Circle's нативний USDC (через Circle CCTP) або Axelar Wrapped USDC (axlUSDC), залежно від конфігурації.

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

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 конвертує нативний токен та оплачує relayers на цільовому чейні.

Розраховуємо потрібний газ через AxelarGMPRecoveryAPI:

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

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

const gasEstimate = await api.estimateGasFee(
  "Ethereum",           // вихідний чейн
  "Polygon",            // цільовий чейн
  GasToken.ETH,
  300_000,              // ліміт газу на цільовому
  1.1                   // 10% буфер
);

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

Token Transfer з GMP

Для трансфер токена + вилик функції на цільовому чейні — використовуємо 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 кросс-чейн протоколів з реальним EVM ↔ Cosmos з'єднанням.

Squid інтеграція для кросс-чейн свопів

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).