Перейти к основному содержанию
Разверните последнюю версию кода в Virtual Environments и сделайте её доступной для команды, поделившись RPC-ссылкой и адресами контрактов.
Continuous integration (CI) and continous deployment (CD) with Virtual Environments

Пример кода: стейджинг контрактов в Virtual Environment

REST API: создание и управление Virtual Environments

1
Создайте Virtual Environment
2
Создайте новую Virtual Environment для стейджинга контрактов одним из способов:
4
Настройте переменные окружения
5
Чтобы создать Virtual Environment и затем задеплоить и верифицировать контракты, настройте следующие переменные окружения:
6
  • TENDERLY_ACCOUNT_ID — ваш account ID
  • TENDERLY_PROJECT — ваш project (slug)
  • TENDERLY_ACCESS_KEYсгенерированный вами access key
  • ORIGINAL_NETWORK_IDID сети, на основе которой вы хотите создать Virtual Environment
  • FOUNDRY_REPO — путь к репозиторию Foundry
  • DEPLOYER_ADDRESS — аккаунт, с которого вы деплоите
  • Добавьте другие переменные окружения, необходимые для скриптов развёртывания
  • 7
    export TENDERLY_ACCOUNT_ID=<USERNAME>
    export TENDERLY_PROJECT=<PROJECT>
    export TENDERLY_ACCESS_KEY=<ACCESS_KEY>
    
    ## TestNet Configuration
    export TENDERLY_TESTNET_NAME=staging
    export PURPOSE=development
    export ORIGINAL_NETWORK_ID=1
    export BLOCK_NUMBER=latest
    
    ## Custom Chain ID (Prefixed with 7357 - test)
    export CHAIN_ID=7357$ORIGINAL_NETWORK_ID
    
    ## Public explorer verification visibility
    ## abi | full | none
    export VERIFICATION_VISIBILITY=abi
    
    # Foundry Repo (Absolute path only!)
    export FOUNDRY_REPO=<ABSOLUTE PATH TO FOUNDRY PROJECT>
    
    ## Deployer address
    export DEPLOYER_ADDRESS=...
    
    ## Custom stuff needed for deployment scripts
    ## Add your custom stuff here
    export ADMIN_ADDRESS=...
    
    8
    Напишите команды развёртывания
    9
    Отредактируйте deploy-command.sh и добавьте команды для деплоя ваших контрактов. Обратите внимание, что вам придётся добавить верификацию в ваш проект Foundry или Hardhat; см. Деплой и верификация контрактов.
    10
    Например:
    11
    #!/bin/bash
    
    cd $FOUNDRY_REPO
    
    ## TODO: Your deployment command here:
    MAX_SEGMENT_COUNT=3
    
    FOUNDRY_PROFILE=optimized \
    forge script script/DeployCore.s.sol \
      --broadcast \
      --rpc-url $TENDERLY_VIRTUAL_TESTNET_RPC \
      --sig "run(address)" \
      --verify \
      --verifier-url $VERIFICATION_URL \
      $ADMIN_ADDRESS
    
    12
    Стейджинг контрактов
    13
    Выполните следующие команды, которые:
    14
  • создадут новую Virtual Environment
  • пополнят $DEPLOYER_ADDRESS тестовым ETH с помощью Infinite faucet
  • сконфигурируют foundry.toml Foundry для верификации на вашей кастомной цепочке
  • задеплоят контракты
  • и наконец подчистят foundry.toml
  • 15
    # create a testnet - or paste the Unlocked TestNet RPC URL
    source src/contracts-staging/.env
    cd src/contracts-staging
    
    ## Create a fresh testnet
    export VIRTUAL_NETWORK_RPC_URL=$(./create-testnet.sh)
    echo "Created a Virtual Environment at ${VIRTUAL_NETWORK_RPC_URL}"
    
    ### run the deployment
    ./deploy-to-testnet.sh
    
    16
    RPC-ссылка отображается в выводе, а ваши контракты задеплоены и верифицированы на Virtual Environment.
    17
    Поделитесь адресами
    18
    Соберите ABI и адреса развёрнутых контрактов и распространите их среди команды вместе с RPC Virtual Environment.