题目
一个 DApp 同时部署在三条链上,团队把合约地址与 ABI 写成了一份全局配置。某次发版后,测试网环境里出现了指向主网地址的交易。请说明多链多环境下的合约配置怎么组织,以及缺链配置时应该表现成什么状态。
考察目标
- 链与传输的声明式配置方式。
- 合约地址与 ABI 的按链组织方式。
- 缺配置时的失败态设计与校验时机。
按 chainId 组织合约配置、区分环境,并让缺链配置进入明确的失败态。
一个 DApp 同时部署在三条链上,团队把合约地址与 ABI 写成了一份全局配置。某次发版后,测试网环境里出现了指向主网地址的交易。请说明多链多环境下的合约配置怎么组织,以及缺链配置时应该表现成什么状态。
createConfig 要求声明 chains,并用 transports 按 chainId 提供每条链的传输;文档说明这份映射会用于创建链感知的 viem Client,也可以改用 client 选项按 chain 自行创建。合约调用依赖合约地址与 ABI,读取与写入走不同路径。因此合约地址与 ABI 应当按 chainId 组织成显式配置,并与主网、测试网环境区分开;当目标链没有配置时,应用应进入明确的失败态。实现差异与工程取舍见深入回答。
发现这道题有问题? 反馈此题