链
Gateway 提供对多个区块链网络的标准化访问,支持钱包管理、交易执行以及节点 RPC 交互。每个链的集成都经过定制,以处理该区块链特有的需求和功能。
Gateway 当前支持以下区块链架构:
以太坊¶
Gateway 的以太坊集成功能支持以太坊主网以及所有兼容 EVM 的一层和二层区块链作为网络。这些网络共享相同的基础架构,从而实现对钱包、交易和智能合约交互的统一处理。
| 网络 | 描述 | 链 ID | 原生代币 | 
|---|---|---|---|
| mainnet | 以太坊主网 | 1 | ETH | 
| arbitrum | Arbitrum One | 42161 | ETH | 
| optimism | Optimism | 10 | ETH | 
| base | Base | 8453 | ETH | 
| polygon | Polygon | 137 | MATIC | 
| bsc | BNB 链 | 56 | BNB | 
| avalanche | Avalanche C-Chain | 43114 | AVAX | 
| celo | Celo | 42220 | CELO | 
| sepolia | Sepolia(测试网) | 11155111 | ETH | 
链配置¶
每个链和网络都可以通过 YAML 配置文件在 Gateway 中进行配置:
- 模板:/src/templates/chains/ethereum.yml
- 用户配置位置:/conf/chains/ethereum.yml
网络配置¶
- 模板:/src/templates/chains/ethereum.yml
- 用户配置文件:/conf/chains/ethereum/mainnet.yml
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 虚拟机网络的访问。
| 网络 | 描述 | 原生代币 | 
|---|---|---|
| mainnet-beta | Solana 主网 | SOL | 
| devnet | Solana 开发网(测试网) | SOL | 
链配置¶
每个链和网络都可以通过 YAML 配置文件在 Gateway 中进行配置:
- 模板:/src/templates/chains/solana.yml
- 用户配置文件位置:/conf/chains/solana.yml
网络配置¶
- 模板:/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- 估算交易费用
链结构定义¶
网关在所有支持的区块链上实施标准化的链操作结构。这些结构定义了常见区块链操作的请求和响应格式。
状态检查¶
返回链连接状态以及当前区块/时隙信息。
请求结构:
响应结构:
{
  "chain": "string",           // Chain name (e.g., "ethereum", "solana")
  "network": "string",         // Network identifier
  "rpcUrl": "string",          // Current RPC endpoint
  "currentBlockNumber": 12345, // Current block number or slot
  "nativeCurrency": "string"   // Native token symbol (e.g., "ETH", "SOL")
}
代币信息¶
获取代币元数据,包括地址和小数位数。
请求结构:
{
  "network": "string (optional)",           // Network identifier
  "tokenSymbols": "string | string[] (optional)" // Single symbol or array of symbols/addresses
}
响应结构:
{
  "tokens": [
    {
      "symbol": "string",   // Token symbol
      "address": "string",  // Token contract address
      "decimals": 6,        // Token decimals
      "name": "string"      // Token full name
    }
  ]
}
余额查询¶
获取钱包的原生资产及指定代币的余额。
请求结构:
{
  "network": "string (optional)",      // Network identifier
  "address": "string (optional)",      // Wallet address to query
  "tokens": ["string"] (optional)",    // Array of token symbols or addresses
  "fetchAll": false                    // Fetch all tokens in wallet, not just those in token list
}
响应结构:
交易轮询¶
轮询已提交交易的状态。
请求结构:
{
  "network": "string (optional)",         // Network identifier
  "signature": "string",                  // Transaction signature/hash
  "tokens": ["string"] (optional)",       // Token symbols/addresses for balance change calculation
  "walletAddress": "string (optional)"    // Wallet address for balance change calculation
}
响应结构:
{
  "currentBlock": 12345,              // Current block number
  "signature": "string",              // Transaction signature
  "txBlock": 12340 | null,            // Block where transaction was included
  "txStatus": 0 | 1 | -1,             // 0=PENDING, 1=CONFIRMED, -1=FAILED
  "fee": 0.001 | null,                // Transaction fee paid
  "tokenBalanceChanges": {            // Optional: token balance changes
    "TOKEN": 100.5                    // Change amount for each token
  },
  "txData": {} | null,                // Additional transaction data
  "error": "string (optional)"        // Error message if failed
}
Gas/费用估算¶
估算网络上的交易费用。
请求结构:
响应结构:
{
  "feePerComputeUnit": 0.000001,  // Fee per compute unit or gas unit
  "denomination": "string",       // Unit denomination ("lamports" for Solana, "gwei" for Ethereum)
  "computeUnits": 200000,          // Default compute units/gas limit used for calculation
  "feeAsset": "string",            // Native currency symbol (ETH, SOL, etc.)
  "fee": 0.002,                    // Total estimated fee using default limits
  "timestamp": 1234567890          // Unix timestamp of estimate
}
交易状态枚举¶
所有链都使用标准化的交易状态枚举:
- 0= 待确认:交易已提交但尚未确认
- 1= 已确认:交易已在链上成功确认
- -1= 失败:交易失败或被拒绝
添加新网络¶
网关的模块化架构使其易于添加对新的 EVM 和 SVM 基础区块链网络的支持。
- 
创建网络配置文件: 
- 
添加代币列表: 创建 /conf/tokens/ethereum/mynetwork.json文件并包含支持的代币
- 
更新连接器 更新每个支持的连接器的配置文件(例如 uniswap.config.ts),以包含新网络
