Skip to main content

内置网络

Powfi.load({ networkId }) 会从以下配置(defaultNetworks)中选择一个: 未知的 networkId 会抛出 Network <id> not found。

覆盖端点

用 networkOverrides 替换除 id 以外的任意字段:
Network 字段:
NetworkId
必填
'mainnet' | 'testnet' | 'devnet'。同时决定端点和打包的合约部署。
string
显示名称。
string
全节点 REST 端点。
string
可选,发送给节点的 API key。
string
浏览器后端端点(供 powfi.explorerProvider 使用)。
string
浏览器网页地址,用于生成链接。
string
JSON 代币列表,格式为 { tokens: TokenInfo[] }。

合约地址

每个模块都会针对所选的 networkId,从 SDK 打包的部署文件(cpmm/deployments、clmm/deployments、staking/deployments)中加载合约 ID: 如果要让某个模块指向不同的部署(分叉链或你自己的 devnet),请在加载后覆盖其配置:
读取当前生效的配置:powfi.cpmm.getConfig()、powfi.clmm.getClmmConfig()、powfi.staking.getConfig()。
各模块的 getter 命名不一致。在 ClmmModule 上,getConfig() 会重新读取打包的部署文件,并忽略 setConfig 设置的覆盖值;读取当前生效的配置请用 getClmmConfig()。CpmmModule 则相反:getConfig() 返回当前生效的配置,getCpmmConfig() 重新读取部署文件。

分组与地址

Alephium 被分片为多个地址分组,每个模块的所有 Powfi 合约都位于同一个分组(config.groupIndex)。池、头寸和金库的 ID 是在该分组中推导出的子合约 ID,因此可以离线计算:
无分组地址(没有 :group 后缀的新式地址)通过 normalizeAddress(address, group) 规范化,必要时追加 :<group>。SDK 内部会对 sender、owner、recipient 和 fee recipient 参数执行此操作。

本地 devnet

SDK 的集成测试运行在本地 Alephium devnet 上:
使用 networkId: 'devnet' 时,SDK 连接 127.0.0.1:22973 并使用 devnet 部署。devnet 上的解除质押解锁期是 1 分钟,而不是 30 天。