跳至内容

网关提供对多个区块链网络的标准化访问,支持钱包管理、交易执行和节点 RPC 交互。每个链集成都经过定制,以处理该区块链的特定需求和特性。

支持的链

网关当前支持两种主要的区块链架构:

基础链 架构 网络 描述
以太坊 EVM mainnet, arbitrum, optimism, base, sepolia, bsc, avalanche, celo, polygon 以太坊和 EVM 兼容链
Solana SVM mainnet-beta, devnet Solana 和 SVM 兼容链

以太坊

网关的以太坊集成支持以太坊主网以及所有 EVM 兼容的 Layer 1 和 Layer 2 区块链作为网络。这些网络共享相同的基本架构,允许统一处理钱包、交易和智能合约交互。

以太坊主网

  • 网络 ID: mainnet
  • 链 ID: 1
  • 原生代币: ETH

Arbitrum

  • 网络 ID: arbitrum
  • 链 ID: 42161
  • 原生代币: ETH

Optimism

  • 网络 ID: optimism
  • 链 ID: 10
  • 原生代币: ETH

Base

  • 网络 ID: base
  • 链 ID: 8453
  • 原生代币: ETH

Polygon

  • 网络 ID: polygon
  • 链 ID: 137
  • 原生代币: MATIC

Binance 智能链 (BSC)

  • 网络 ID: bsc
  • 链 ID: 56
  • 原生代币: BNB

Avalanche C-Chain

  • 网络 ID: avalanche
  • 链 ID: 43114
  • 原生代币: AVAX

Celo

  • 网络 ID: celo
  • 链 ID: 42220
  • 原生代币: CELO

Sepolia (测试网)

  • 网络 ID: sepolia
  • 链 ID: 11155111
  • 原生代币: ETH

链配置

每个链和网络都可以通过 YAML 配置文件在网关中进行配置:

  • 模板:/src/templates/chains/ethereum.yml
  • 用户配置位置:/conf/chains/ethereum.yml
defaultNetwork: mainnet
defaultWallet: '<ethereum-wallet-address>'

网络配置

  • 模板:/src/templates/chains/ethereum.yml
  • 用户配置:/conf/chains/ethereum/mainnet.yml
chainID: 1
nodeURL: https://eth.llamarpc.com
nativeCurrencySymbol: ETH
minGasPrice: 0.1

API 端点

所有 EVM 链共享相同的 API 结构:

  • GET /chains/ethereum/status - 链连接和区块状态
  • GET /chains/ethereum/tokens - 代币信息
  • POST /chains/ethereum/balances - 钱包余额
  • POST /chains/ethereum/allowances - 代币授权
  • POST /chains/ethereum/approve - 授权代币支出
  • POST /chains/ethereum/wrap - 封装原生代币
  • POST /chains/ethereum/unwrap - 解封原生代币
  • POST /chains/ethereum/poll - 轮询交易状态
  • POST /chains/ethereum/estimate-gas - 估算交易 gas

Solana

网关的 Solana 集成提供对 Solana 区块链以及其他使用 Solana 虚拟机的网络的访问。

主网 Beta

  • 网络 ID: mainnet-beta
  • 原生代币: SOL

Devnet (测试网)

  • 网络 ID: devnet
  • 原生代币: SOL

链配置

每个链和网络都可以通过 YAML 配置文件在网关中进行配置:

  • 模板:/src/templates/chains/solana.yml
  • 用户配置位置:/conf/chains/solana.yml
defaultNetwork: mainnet-beta
defaultWallet: '<solana-wallet-address>'

网络配置

  • 模板:/src/templates/chains/solana.yml
  • 用户配置:/conf/chains/solana/mainnet-beta.yml
nodeURL: "https://api.mainnet-beta.solana.com"
commitment: "confirmed"
skipPreflight: false
preflightCommitment: "confirmed"
maxFee: 0.01
priorityFee: 0.00001

API 端点

所有 Solana 网络共享相同的 API 结构:

  • GET /chains/solana/status - 链连接和时隙状态
  • GET /chains/solana/tokens - SPL 代币信息
  • POST /chains/solana/balances - 钱包 SOL 和代币余额
  • POST /chains/solana/poll - 轮询交易状态
  • POST /chains/solana/estimate-gas - 估算交易费用

链架构

网关在所有支持的区块链上实现了统一的链操作架构。这些架构定义了常见区块链操作的请求和响应结构。

状态检查

返回链连接状态和当前区块/时隙信息。

请求架构:

{
  "network": "string (optional)" // 网络标识符(例如 "mainnet", "mainnet-beta")
}

响应架构:

{
  "chain": "string",           // 链名称(例如 "ethereum", "solana")
  "network": "string",         // 网络标识符
  "rpcUrl": "string",          // 当前 RPC 端点
  "currentBlockNumber": 12345, // 当前区块号或时隙
  "nativeCurrency": "string"   // 原生代币符号(例如 "ETH", "SOL")
}

代币信息

检索代币元数据,包括地址和小数位数。

请求架构:

{
  "network": "string (optional)",           // 网络标识符
  "tokenSymbols": "string | string[] (optional)" // 单个符号或符号/地址数组
}

响应架构:

{
  "tokens": [
    {
      "symbol": "string",   // 代币符号
      "address": "string",  // 代币合约地址
      "decimals": 6,        // 代币小数位数
      "name": "string"      // 代币全称
    }
  ]
}

余额查询

获取原生和指定代币的钱包余额。

请求架构:

{
  "network": "string (optional)",      // 网络标识符
  "address": "string (optional)",      // 要查询的钱包地址
  "tokens": ["string"] (optional)",    // 代币符号或地址数组
  "fetchAll": false                    // 获取钱包中的所有代币,而不仅仅是代币列表中的
}

响应架构:

{
  "balances": {
    "TOKEN_SYMBOL": 1234.56  // 代币符号/地址作为键,余额作为数字
  }
}

交易轮询

轮询已提交交易的状态。

请求架构:

{
  "network": "string (optional)",         // 网络标识符
  "signature": "string",                  // 交易签名/哈希
  "tokens": ["string"] (optional)",       // 用于余额变更计算的代币符号/地址
  "walletAddress": "string (optional)"    // 用于余额变更计算的钱包地址
}

响应架构:

{
  "currentBlock": 12345,              // 当前区块号
  "signature": "string",              // 交易签名
  "txBlock": 12340 | null,            // 交易被包含的区块
  "txStatus": 0 | 1 | -1,             // 0=待处理, 1=已确认, -1=失败
  "fee": 0.001 | null,                // 支付的交易费用
  "tokenBalanceChanges": {            // 可选:代币余额变更
    "TOKEN": 100.5                    // 每个代币的变更金额
  },
  "txData": {} | null,                // 额外的交易数据
  "error": "string (optional)"        // 失败时的错误消息
}

Gas/费用估算

估算网络的交易费用。

请求架构:

{
  "network": "string (optional)"  // 网络标识符
}

响应架构:

{
  "feePerComputeUnit": 0.000001,  // 每个计算单位或 gas 单位的费用
  "denomination": "string",       // 单位单位("lamports" for Solana, "gwei" for Ethereum)
  "computeUnits": 200000,          // 用于计算的默认计算单位/gas 限制
  "feeAsset": "string",            // 原生货币符号 (ETH, SOL, etc.)
  "fee": 0.002,                    // 使用默认限制的总估算费用
  "timestamp": 1234567890          // 估算的 Unix 时间戳
}

交易状态枚举

所有链都使用标准化的交易状态枚举:

  • 0 = 待处理:交易已提交但尚未确认
  • 1 = 已确认:交易已成功确认在链上
  • -1 = 失败:交易失败或被拒绝

添加新网络

网关的模块化架构使其可以轻松添加对新的 EVM 和 SVM 基础区块链网络的支持。

  1. 创建网络配置文件:

    # /conf/chains/ethereum/mynetwork.yml
    nodeURL: "https://rpc.mynetwork.com"
    chainId: 12345
    nativeCurrencySymbol: "MYT"
    minGasPrice: 0.1
    

  2. 添加代币列表:/conf/tokens/ethereum/mynetwork.json创建支持的代币

  3. 更新连接器 更新每个支持的连接器的配置文件(即uniswap.config.ts)以包含新网络