Документация AltLayer
  • 👋Добро пожаловать
    • Краткий обзор
  • Рестейк роллапы
    • VITAL для децентрализованной верификации
      • Завершенность 1-го уровня
      • Завершенность 2-го уровня
      • Завершенность 3-го уровня
    • MACH для более быстрой завершенности
      • Взаимодействие через MACH
    • SQUAD для децентрализованного секвенсирования
    • Стейкинг токена dApp
  • ♾️АКТИВНО ВАЛИДИРУЕМЫЕ УСЛУГИ С ПОДДЕРЖКОЙ ALTLAYER
    • Краткий обзор
    • AltLayer MACH AVS
      • Руководство для операторов
      • Руководство по обновлению V0.2.3
      • Руководство по пользовательскому делегированию
    • Cyber MACH AVS для Cyber L2
      • Руководство для операторов
      • Руководство по пользовательскому делегированию
    • DODOchain MACH AVS для чейна DODO
      • Руководство для операторов
      • Руководство по пользовательскому делегированию
    • GM Network MACH AVS для GM Network
      • Руководство для операторов
      • Руководство по пользовательскому делегированию
    • Xterio MACH AVS для Xterio Chain
      • Руководство для операторов
      • Руководство по пользовательскому делегированию
  • 🥩Рестейкинг ALT
    • Информация и параметры стейкинга
    • Рестейкинг ALT
    • Делегирование reALT
    • Проверка и клейм вознаграждений за стейкинг
    • Анстейкинг ALT
    • Миграция из пула Xterio (Legacy) ALT Pool в пул Xterio Restaked ALT Pool
    • Тестовый кран reALT
  • ROLLUP-AS-A-SERVICE
    • Что такое Rollup-as-a-Service (RaaS)?
    • Предложение RaaS от AltLayer
    • Руководство по внедрению RaaS
      • Часто задаваемые вопросы по Optimism Rollup
      • Часто задаваемые вопросы по Arbitrum Rollup
    • Экосистема AltLayer
    • Крупнейшие партнеры
    • Модель ценообразования
  • Панель запуска роллапов
    • Начало работы с приборной панелью RaaS AltLayer'а (бесплатная пробная версия)
    • Создание роллапа (Dev tier)
    • Создание роллапа (Restaking Tier)
      • Предварительные действия - рестейк с использованием EigenLayer
      • Запуск пробного флэш-слоя рестейкинга
    • Инструментарий
      • Web IDE
      • FlashGPT
        • Создание флэш-слоя
        • Создание и развертывание смарт-контракта
    • API и SDK
      • Конечная точка и ключ API
      • Создание флэш-слоя
      • Получение информации о флэш-слое
      • Завершение работы флэш-слоя
  • Публичные тестнеты
    • Тестнет OP EigenDA
    • Тестнет OP Avail
    • Тестнет Nitrogen (Orbit Celestia)
    • Тестнет Discovery (Orbit EigenDA)
    • MACH Alpha для inEVM
  • Сторонние интеграции
    • Абстракция счета с использованием Biconomy
    • Доступность данных (DA) с использованием Celestia
    • Обеспечение свободного взаимодействия на роллапах AltLayer с помощью Hyperlane
      • Развертывание Hyperlane Warp Routes для бриджинга токенов ERC20
      • Запуск агентов вне чейна
      • Настройка пользовательского интерфейса моста
    • Кросс-чейн совместимость с помощью Celer
      • Перевод взаимозаменяемых токенов
      • Перевод невзаимозаменяемых токенов
      • Общая передача сообщений
      • cBridge SDK
  • Глубокий анализ роллап стека Altlayer
    • Как работает роллап стек от AltLayer?
    • Децентрализованный набор секвенсоров
    • Защита с помощью доказательств мошенничества
  • типы роллапов
    • Роллапы: флэш-слои
      • Примеры использования
        • События, связанные с минтом NFT
        • Игры
        • Билеты для мероприятий
    • Устойчивые роллапы
  • Ключевые особенности роллап-стека Altlayer
    • Модульность
    • Эластичность
    • Поддержка мульти-VM
    • Доказательства мошенничества
    • Децентрализованные секвенсоры
    • Многоуровневая завершенность
  • показатели
    • Минт Коллекции POAP NFTs от AltLayer
      • Тест производительности в естественных условиях
    • Раунд сообщества в игре Dark Forest
    • Минт коллекции NFT Oh Ottie!
    • Раунд сообщества в игре Dark Forest в рамках мероприятия Jump Crypto's Pit Event
    • Ottie 2048
    • Другие демоверсии
      • Демонстрация доказательства мошенничества
      • Демонстрация флэш-слоя
      • Демоверсия лаунчпада роллапа
      • Демоверсия FlashGPT
  • ход реализации проекта
    • Текущий статус разработки
  • Сообщество и поддержка
    • Сообщество
    • Поддержка
  • Оригинал
Powered by GitBook
On this page
  • A. Содержание
  • B. Развертывание контракта
  1. Сторонние интеграции
  2. Обеспечение свободного взаимодействия на роллапах AltLayer с помощью Hyperlane

Развертывание Hyperlane Warp Routes для бриджинга токенов ERC20

PreviousОбеспечение свободного взаимодействия на роллапах AltLayer с помощью HyperlaneNextЗапуск агентов вне чейна

Last updated 1 year ago

A. Содержание

В этом руководстве мы покажем, как перевести с L1 (Sepolia) на L2 (Rollup Testnet) с помощью Hyperlane Warp Routes.

Эти шаги применимы и ко всем другим токенам ERC-20 на любом роллапе AltLayer.

B. Развертывание контракта

В данном руководстве мы будем использовать следующие адреса

Разработчик: 0xC6391bAb6AfCc5dBDcbafA57C3340BbF9C800d33

Валидатор: 0x7C19F05dB313D89dea09781DF2c076EC1132C423

Передатчик: 0x5d3C6567683d9467B2c317A02ddA5B97E20F6029

Вам необходимо сгенерировать собственные адреса для следующих ролей. Пожалуйста, убедитесь, что они пополнены токенами газа

Для начала клонируйте репозиторий hyperlane и запустите команду

yarn install

Измените config/chains.ts, указав конфигурацию чейна.

Ниже приведен пример конфигурации, в которой L1 - Sepolia, а L2 - тестнет AltLayer.

import { ChainMap, ChainMetadata } from '@hyperlane-xyz/sdk';

export const chains: ChainMap<ChainMetadata> = {
  sepolia: {
    name: 'sepolia',
    chainId: 11155111,
    nativeToken: {
      name: 'ether',
      symbol: 'ETH',
      decimals: 18,
    },
    publicRpcUrls: [
      {
        http: 'https://eth-sepolia.g.alchemy.com/v2/api-key',
      },
    ],
  },
  testnet: {
    name: 'testnet',
    chainId: 9997,
    nativeToken: {
      name: 'ALT',
      symbol: 'ALT',
      decimals: 18,
    },
    publicRpcUrls: [
      {
        http: 'https://testnet-rollup-api.altlayer.io',
      },
    ],
  },
};

Измените config/multisig_ism.ts. В данном примере мы установим значение 1. В реальной ситуации следует установить более высокий порог.

import { ChainMap, MultisigIsmConfig } from '@hyperlane-xyz/sdk';

export const multisigIsmConfig: ChainMap<MultisigIsmConfig> = {
  // ----------- Your chains here -----------------
  sepolia: {
    threshold: 1,
    validators: [
      '0x7C19F05dB313D89dea09781DF2c076EC1132C423', // validator address
    ],
  },
  testnet: {
    threshold: 1,
    validators: [
      '0x7C19F05dB313D89dea09781DF2c076EC1132C423', // validator address
    ],
  },
};

Запустите следующую команду с использованием приватного ключа разработчика для развертывания контрактов на L1 (Sepolia)

yarn ts-node scripts/deploy-hyperlane.ts --local testnet \
  --remotes sepolia \
  --key <deployer private key>

Запустите следующую команду с использованием приватного ключа разработчика для развертывания контрактов на L2

yarn ts-node scripts/deploy-hyperlane.ts --local sepolia \
  --remotes testnet \
  --key <deployer private key>

После запуска команды будут получены некоторые артефакты. Например:

  1. artifacts/addresses.json

{
  "testnet": {
    "multisigIsm": "0x63aC18CFB9207ba750393DaB7509F1aAE4F35B97",
    "proxyAdmin": "0x6aa797913c88b03718044924DDC16A3Ee0f37A3F",
    "mailbox": "0x190c91b92c95DEDf09a954aC538CC926945d81Fb",
    "validatorAnnounce": "0xFc9D5Cf9bdd090182968aF7D478Ee9dfF06dD909",
    "testRecipient": "0xD08D64aF4ed573845861Abcd89860ae8889ed12D",
    "storageGasOracle": "0xAd2310dBcB8aae371082831dA587e96BB1E51daD",
    "interchainGasPaymaster": "0xe7A1f91B9049cC4D1a82C271aF4D6CCA9AFeB20e",
    "defaultIsmInterchainGasPaymaster": "0xd51A3FBAC4424a2a0C330686020341FD70ADc9c5"
  },
  "sepolia": {
    "multisigIsm": "0x63aC18CFB9207ba750393DaB7509F1aAE4F35B97",
    "testRecipient": "0x6aa797913c88b03718044924DDC16A3Ee0f37A3F",
    "proxyAdmin": "0x5324d2355c2cB034cE5dCBCB3Fbb868DBa8C982a",
    "storageGasOracle": "0x190c91b92c95DEDf09a954aC538CC926945d81Fb",
    "interchainGasPaymaster": "0x65Ff5C940Dd9f11BE608e44602370B347f581B2b",
    "defaultIsmInterchainGasPaymaster": "0x34407596169673017849399F332819aa5ef0e565",
    "mailbox": "0xd51A3FBAC4424a2a0C330686020341FD70ADc9c5",
    "validatorAnnounce": "0x2c29105f892e6A7F8E0547A9423861734c6352D0"
  }
}
  1. artifacts/agent_config.json

{
  "chains": {
    "sepolia": {
      "name": "sepolia",
      "domain": 11155111,
      "addresses": {
        "mailbox": "0xd51A3FBAC4424a2a0C330686020341FD70ADc9c5",
        "interchainGasPaymaster": "0x65Ff5C940Dd9f11BE608e44602370B347f581B2b",
        "validatorAnnounce": "0x2c29105f892e6A7F8E0547A9423861734c6352D0"
      },
      "protocol": "ethereum",
      "finalityBlocks": 1,
      "connection": {
        "type": "http"
      },
      "index": {
        "from": 3728779
      }
    },
    "testnet": {
      "name": "testnet",
      "domain": 9997,
      "addresses": {
        "mailbox": "0x190c91b92c95DEDf09a954aC538CC926945d81Fb",
        "interchainGasPaymaster": "0xe7A1f91B9049cC4D1a82C271aF4D6CCA9AFeB20e",
        "validatorAnnounce": "0xFc9D5Cf9bdd090182968aF7D478Ee9dfF06dD909"
      },
      "protocol": "ethereum",
      "finalityBlocks": 1,
      "connection": {
        "type": "http"
      },
      "index": {}
    }
  }
}

Измените config/warp_tokens.ts, используя значения из artifacts/addresses.json. В данной конфигурации мы заполнили контрактные адреса WETH10, токен, который мы хотим перевести с L1 на L2.

import { TokenType } from '@hyperlane-xyz/hyperlane-token';

import type { WarpRouteConfig } from '../src/warp/config';

// Конфигурация для развертывания Warp Routes на набор чейнов
// Не требуется для развертываний Hyperlane
export const warpRouteConfig: WarpRouteConfig = {
  base: {
    // Имя чейна должно быть указано в Hyperlane SDK или в конфигурации chains.ts
    chainName: 'sepolia',
    type: TokenType.collateral, //  TokenType.native или TokenType.collateral
    // Если тип является залоговым, требуется адрес токена:
    address: '0xe67abda0d43f7ac8f37876bbf00d1dfadbb93aaa', // WETH10
    mailbox: '0xd51A3FBAC4424a2a0C330686020341FD70ADc9c5',
    interchainGasPaymaster: '0x65Ff5C940Dd9f11BE608e44602370B347f581B2b',

    // По желанию можно указать адреса владельца, адреса почты и interchainGasPaymaster
    // Если не указано, будут использоваться артефакты Permissionless Deployment или значения SDK по умолчанию
  },
  synthetics: [
    {
      chainName: 'testnet',
      mailbox: '0x190c91b92c95DEDf09a954aC538CC926945d81Fb',
      interchainGasPaymaster: '0xe7A1f91B9049cC4D1a82C271aF4D6CCA9AFeB20e',

      // По желанию можно указать имя, символ и totalSupply
      // Если не указано, будут использоваться свойства базового токена

      // По желанию можно указать адреса владельца, адреса почты и interchainGasPaymaster
      //  Если не указано, будут использоваться артефакты Permissionless Deployment или значения по умолчанию SDK
    },
  ],
};

Запустите эту команду с использованием приватного ключа разработчика для развертывания wrap контрактов. В результате контракты HypERC20 будут развернуты на L2. В этом примере контрактом HypERC20 будет WETH10 на L2.

yarn ts-node scripts/deploy-warp-routes.ts --key <deployer private key>

После выполнения команды будут выведены следующие артефакты

  1. artifacts/warp-token-addresses.json

{
  "sepolia": {
    "router": "0xffA5f94329f41b9353F4ccA74Ba59D3Faed75AAe",
    "tokenType": "collateral"
  },
  "testnet": {
    "router": "0xffA5f94329f41b9353F4ccA74Ba59D3Faed75AAe",
    "tokenType": "synthetic"
  }
}
  1. artifacts/warp-ui-token-list.json

[
  {
    "chainId": 11155111,
    "name": "Wrapped Ether v10",
    "symbol": "WETH10",
    "decimals": 18,
    "type": "collateral",
    "address": "0xe67abda0d43f7ac8f37876bbf00d1dfadbb93aaa",
    "hypCollateralAddress": "0xffA5f94329f41b9353F4ccA74Ba59D3Faed75AAe"
  }
]
WETH10
https://github.com/hyperlane-xyz/hyperlane-deploy