DeFi注册表管理器Skill defi-registry-manager

DeFi 注册表管理器是一个用于管理和扩展去中心化金融(DeFi)应用基础设施的技能。它专注于在代码库中系统化地添加和更新代币、流动性池、区块链网络、去中心化交易所(DEX)和协议。核心功能包括维护多链代币列表、配置网络RPC端点、集成新协议以及确保跨前端、后端和核心Rust模块的数据一致性。该技能通过详细的检查清单和验证流程,帮助开发者避免因地址错误、小数位数不匹配或配置遗漏而导致的严重错误,是构建和维护稳健DeFi应用、交易机器人、跨链套利系统和Web3钱包服务的关键工具。关键词:DeFi开发,区块链开发,Web3,智能合约,多链集成,代币管理,RPC配置,DEX集成,注册表维护,代码一致性。

DeFi 0 次安装 0 次浏览 更新于 3/2/2026

名称: defi-registry-manager 描述: 管理代码库中代币、流动性池、链、网络和去中心化交易所的扩展。在添加新代币、协议、链、网络或更新现有DeFi注册表数据时使用。触发词:添加代币、新代币、添加协议、新DEX、添加链、新网络、添加RPC、更新地址。

DeFi 注册表管理器

管理代码库中代币、流动性池、链、网络和去中心化交易所的扩展。

何时使用

  • 向注册表添加新代币
  • 添加新协议或去中心化交易所
  • 添加对新链的支持
  • 配置网络RPC端点
  • 更新代币地址或小数位数

工作流程

步骤 1:识别注册表类型

确定是添加代币、协议、链还是网络。

步骤 2:遵循检查清单

根据注册表类型使用相应的检查清单。

步骤 3:更新所有文件

确保同时更新所有必需的文件。

步骤 4:验证更改

运行验证命令以确保一致性。


触发短语

  • “添加代币”、“新代币”、“添加币种”
  • “添加协议”、“新DEX”、“添加交易所”
  • “添加链”、“新网络”、“支持链”
  • “添加网络”、“新RPC”、“配置网络”
  • “更新地址”、“修复代币地址”

注册表位置

代币 - 必须同时更新所有文件:

文件 用途 格式
client/src/constants/protocols.ts 前端代币列表 TOKENS[chainId] 数组
rust-core/crates/core/src/tokens.rs Rust核心代币 TOKENS LazyLock HashMap
server/src/services/wallet.ts 钱包服务代币 COMMON_TOKENS + TOKEN_SYMBOLS
shared/schema.ts 共享小数位数映射 TOKEN_DECIMALS 记录

协议/DEX:

文件 用途
client/src/constants/protocols.ts PROTOCOLS 数组
server/src/services/arbitrage.ts 用于扫描的 DEXES 数组
server/src/services/price-oracle.ts 价格预言机适配器

链:

文件 用途
client/src/constants/protocols.ts CHAINS 数组 + ChainId 类型
rust-core/crates/core/src/lib.rs ChainId 枚举
server/src/config/env.ts 每条链的RPC URL
shared/schema.ts ChainId 类型
server/src/db/schema.ts adminChains 表(管理界面)

网络(RPC/基础设施):

文件 用途
server/src/config/env.ts 主RPC URL、WebSocket端点
server/src/db/schema.ts adminChains 表,包含 rpcUrlexplorerUrl
rust-core/crates/core/src/lib.rs 网络常量、出块时间
server/src/services/trade-executor.ts 链特定Gas设置

管理界面数据库表:

用途
adminTokens 通过管理界面的动态代币注册表
adminProtocols 通过管理界面的动态协议/DEX注册表
adminChains 通过管理界面的动态链/网络配置
strategies 交易策略配置

添加新代币 - 检查清单

[ ] 1. 在区块浏览器上验证代币地址(校验和格式)
[ ] 2. 确认小数位数(关键:USDC/USDT=6,WBTC=8,大多数=18)
[ ] 3. 更新 client/src/constants/protocols.ts - TOKENS[chainId]
[ ] 4. 更新 rust-core/crates/core/src/tokens.rs - chain_tokens.insert()
[ ] 5. 更新 server/src/services/wallet.ts - COMMON_TOKENS[chainId]
[ ] 6. 更新 server/src/services/wallet.ts - TOKEN_SYMBOLS(小写)
[ ] 7. 更新 shared/schema.ts - TOKEN_DECIMALS(如果不是标准的18位)
[ ] 8. 运行:grep -r "TOKEN_ADDRESS_HERE" 查找任何硬编码引用

代币模板

// 前端 (protocols.ts)
{
  address: '0x...', // 校验和地址
  symbol: 'TOKEN',
  name: '代币名称',
  decimals: 18,
  chains: ['ethereum'],
}

// Rust (tokens.rs)
tokens.insert("TOKEN", Token::new(
    "0x...".parse().unwrap(),
    "TOKEN", "代币名称", 18, ChainId::Ethereum
));

// 钱包服务 (wallet.ts) - COMMON_TOKENS
'0x...', // TOKEN

// 钱包服务 (wallet.ts) - TOKEN_SYMBOLS
'0x...lowercase': 'TOKEN',

添加新协议/DEX - 检查清单

[ ] 1. 添加到 client/src/constants/protocols.ts - PROTOCOLS 数组
[ ] 2. 将路由器地址添加到 shared/schema.ts - PROTOCOL_ADDRESSES
[ ] 3. 添加到 server/src/services/arbitrage.ts - DEXES(如果可扫描)
[ ] 4. 在 server/src/services/price-oracle.ts 中创建适配器(如果需要)
[ ] 5. 如果协议需要特定验证,则更新 validation.ts

添加新链 - 检查清单

[ ] 1. 将 ChainId 添加到 shared/schema.ts
[ ] 2. 将 ChainId 枚举变体添加到 rust-core/crates/core/src/lib.rs
[ ] 3. 添加到 client/src/constants/protocols.ts - CHAINS 数组
[ ] 4. 将 RPC URL 添加到 server/src/config/env.ts
[ ] 5. 将链配置添加到 server/src/services/trade-executor.ts
[ ] 6. 在所有代币文件中为新链添加代币
[ ] 7. 为新链添加协议地址
[ ] 8. (可选)通过管理界面添加到 adminChains 以进行动态配置

添加/配置网络 - 检查清单

[ ] 1. 获取可靠的RPC端点(Alchemy、Infura、QuickNode或自托管)
[ ] 2. 将环境变量添加到 server/src/config/env.ts
     - HTTP RPC: {CHAIN}_RPC_URL
     - WebSocket: {CHAIN}_WS_URL(如果需要订阅)
[ ] 3. 配置速率限制和备用RPC(如果可用)
[ ] 4. 将网络参数添加到 rust-core/crates/core/src/lib.rs:
     - 出块时间(用于时间估计)
     - Gas代币小数位数
     - EIP-1559 支持标志
[ ] 5. 在 server/src/services/trade-executor.ts 中配置Gas设置:
     - 基础费用乘数
     - 默认优先费用
     - Gas限制覆盖
[ ] 6. 添加交易链接的浏览器URL
[ ] 7. 测试连接性:curl -X POST {RPC_URL} -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
[ ] 8. 通过 /admin -> Chains 标签页添加到管理界面以进行动态更新

网络配置模板

// 环境 (.env)
ETHEREUM_RPC_URL=https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY
ETHEREUM_WS_URL=wss://eth-mainnet.g.alchemy.com/v2/YOUR_KEY
ARBITRUM_RPC_URL=https://arb-mainnet.g.alchemy.com/v2/YOUR_KEY

// server/src/config/env.ts
ethereum: {
  rpcUrl: process.env.ETHEREUM_RPC_URL,
  wsUrl: process.env.ETHEREUM_WS_URL,
  chainId: 1,
  blockTime: 12, // 秒
  supportsEip1559: true,
}

// 管理界面 (adminChains 表)
{
  id: 'ethereum',
  name: '以太坊主网',
  chainIdNumeric: 1,
  rpcUrl: 'https://...',
  explorerUrl: 'https://etherscan.io',
  nativeToken: 'ETH',
  enabled: true,
}

常见代币地址(以太坊主网)

代币 地址 小数位数
WETH 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 18
USDC 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 6
USDT 0xdAC17F958D2ee523a2206206994597C13D831ec7 6
DAI 0x6B175474E89094C44Da98b954EedeAC495271d0F 18
WBTC 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599 8

验证命令

进行更改后,运行以下命令以验证一致性:

# 检查某个链的所有文件是否具有相同的代币数量
grep -c "ethereum" client/src/constants/protocols.ts
grep -c "Ethereum" rust-core/crates/core/src/tokens.rs

# 验证地址一致性
grep -ri "0xA0b86991" --include="*.ts" --include="*.rs"

# 检查地址中的拼写错误
grep -ri "0x6B175474E89094C44Da98b954" --include="*.ts" --include="*.rs"

常见网络

网络 链 ID 出块时间 原生代币 EIP-1559
以太坊 1 12秒 ETH
Arbitrum One 42161 0.25秒 ETH
Base 8453 2秒 ETH
Polygon 137 2秒 MATIC
Optimism 10 2秒 ETH
Avalanche 43114 2秒 AVAX
BSC 56 3秒 BNB

关键规则

  1. 始终验证小数位数 - 错误的小数位数会导致灾难性错误
  2. 使用校验和地址 - 混合大小写以符合EIP-55标准
  3. 更新所有文件 - 部分更新会导致运行时错误
  4. 更改后进行测试 - 运行客户端和Rust核心的构建
  5. TOKEN_SYMBOLS中使用小写 - 键必须是地址的小写形式
  6. 测试RPC连接性 - 部署前验证端点
  7. 使用备用RPC - 主RPC + 备用RPC以提高可靠性
  8. 监控速率限制 - 保持在提供商配额内