跳转到主要内容
将最新代码部署到 Virtual Environments,并通过共享 RPC 链接和合约地址将其提供给您的团队。
Continuous integration (CI) and continous deployment (CD) with Virtual Environments

Code Sample: Staging Contracts to Virtual Environment

REST API: Create and manage Virtual Environments

1
创建 Virtual Environment
2
创建一个新的 Virtual Environment 来暂存您的合约,方法为:
4
设置环境变量
5
要创建 Virtual Environment 并部署与验证合约,请设置以下环境变量:
6
  • TENDERLY_ACCOUNT_ID 为您的账户 ID
  • TENDERLY_PROJECT 为您的项目 (slug)
  • TENDERLY_ACCESS_KEY 为您生成的 access key
  • ORIGINAL_NETWORK_ID 为您要作为 Virtual Environment 基础的网络 ID
  • 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
  • 配置 Foundry 的 foundry.toml 以在您的自定义链上进行验证
  • 部署您的合约
  • 最后清理 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 和地址,并将它们连同 Virtual Environment RPC 一起分发给您的团队。