链
网关提供对多个区块链网络的标准化访问,支持钱包管理、交易执行和节点 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
网络配置¶
- 模板:
/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 虚拟机的网络的访问。
主网 Beta¶
- 网络 ID: mainnet-beta
- 原生代币: SOL
Devnet (测试网)¶
- 网络 ID: devnet
- 原生代币: SOL
链配置¶
每个链和网络都可以通过 YAML 配置文件在网关中进行配置:
- 模板:
/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", // 链名称(例如 "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 // 获取钱包中的所有代币,而不仅仅是代币列表中的
}
响应架构:
交易轮询¶
轮询已提交交易的状态。
请求架构:
{
"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/费用估算¶
估算网络的交易费用。
请求架构:
响应架构:
{
"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 基础区块链网络的支持。
-
创建网络配置文件:
-
添加代币列表: 在
/conf/tokens/ethereum/mynetwork.json
创建支持的代币 -
更新连接器 更新每个支持的连接器的配置文件(即
uniswap.config.ts
)以包含新网络