我正在使用@gnosis.pm/safe-core-sdk连接到和谐网上的一个保险箱。这个完全相同的代码用于其他基于EVM的链上,没有问题。
堆栈跟踪:
instrument.ts?6969:130 Error: Invalid Multi Send contract address
at EthersAdapter.getMultiSendContract (EthersAdapter.ts?461a:103:13)
at ContractManager.init (contractManager.ts?d7ef:56:48)
at async Function.create (contractManager.ts?d7ef:20:5)
at async Safe.init (Safe.ts?c8f6:110:29)
at async Function.create (Safe.ts?c8f6:92:5)代码:
const safeAddress = '0x23725daFc71D6ea68Df50E5dE2faAB35751EF7bd';
const ethers = await import("ethers");
const { EthersAdapter, default: Safe } = await import(
"@gnosis.pm/safe-core-sdk"
);
const signer = await requestSigner();
const ethAdapter = new EthersAdapter({ ethers, signer });
const safe = await Safe.create({ ethAdapter, safeAddress });这是我们正在测试的Gnosis安全:https://multisig.harmony.one/#/safes/0x23725daFc71D6ea68Df50E5dE2faAB35751EF7bd/transactions --我们也使用one1yde9mt78r4h2dr04pew7974tx463aaaaz2x5mf作为safeAddress进行了测试,但这会引发有关地址无效的错误。
发布于 2022-03-30 08:13:34
代码片段是正确的。
当使用连接到和谐主网的SDK时,需要消息Error: Invalid Multi Send contract address。目前,SecurityCoreSDKv2.0.0使用包safe-deployments v1.8.0来获取部署在不同网络中的安全契约的地址,其中不包括和谐网络。
我将创建一个安全核心SDK的新版本,其中包含了safe-deployments包的更新版本,其中包含了和谐。
同时,您可以从这里获得已部署的契约地址:https://github.com/gnosis/safe-deployments/tree/main/src/assets/v1.3.0,并将属性contractNetworks添加到具有这些值的Safe.create()参数中。
请查看此处:https://github.com/gnosis/safe-core-sdk/tree/main/packages/safe-core-sdk#create-1有关属性contractNetworks的文档,以获得更多信息:
import { ContractNetworksConfig } from '@gnosis.pm/safe-core-sdk'
const id = await ethAdapter.getChainId()
const contractNetworks: ContractNetworksConfig = {
[id]: {
multiSendAddress: '<MULTI_SEND_ADDRESS>',
safeMasterCopyAddress: '<MASTER_COPY_ADDRESS>',
safeProxyFactoryAddress: '<PROXY_FACTORY_ADDRESS>'
}
}
const safeSdk = await Safe.create({ ethAdapter, safeAddress, contractNetworks })https://ethereum.stackexchange.com/questions/125006
复制相似问题