Metamask
如何使用 Safe Core SDK 在 Mumbai testnet(Polygon) 上部署 gnosis 安全代理合約?
我正在關注 Safe Core SDK文件並希望在 Mumbai 測試網上創建一個安全代理合約,當我在實例化SafeFactory 類
Error: Invalid Safe Proxy Factory contract address
後切換到 Metamask 中的 Mumbai/Ropsten 測試網時出現以下錯誤。當我切換到 Rinkeby 測試網(乙太坊)或其他一些乙太坊測試網時,不會發生此錯誤。有人能告訴我如何使用安全核心 SDK 在孟買測試網上部署安全嗎?我正在使用Safe Core SDK v1.1.1 和web3 v1.6.1 來實例化 ethAdapter。
Safe Core SDK 從safe-deployments獲取所有安全合約和網路配置。特別是在這種情況下,從這裡開始,這意味著如果 Mumbai chainId (80001) 不存在於
networkAddresses
密鑰下方,則安全合約不會部署在該網路中。發生這種情況時,您需要手動部署合約。部署後,Safe Core SDK 提供了使用來自網路中不受支持的安全合約實例的可能性
safe-deployments
。這可以通過以下方式完成:import { ContractNetworksConfig } from '@gnosis.pm/safe-core-sdk' const chainId = await ethAdapter.getChainId() const contractNetworks: ContractNetworksConfig = { [chainId]: { multiSendAddress: '<MULTI_SEND_ADDRESS>', safeMasterCopyAddress: '<MASTER_COPY_ADDRESS>', safeProxyFactoryAddress: '<PROXY_FACTORY_ADDRESS>' } } const safeFactory = await SafeFactory.create({ ethAdapter, contractNetworks })
您最近在孟買網路中部署的安全合約的地址和
MULTI_SEND_ADDRESS
地址MASTER_COPY_ADDRESS
。PROXY_FACTORY_ADDRESS
現在您可以使用您的
safeFactory
實例創建一個新的保險箱:const safeSdk = await safeFactory.deploySafe(safeAccountConfig, safeDeploymentConfig)
當實例化 Safe Core SDK 以與不受支持的網路一起使用時,您將始終需要以
contractNetworks
相同的方式使用相同的參數:import { ContractNetworksConfig } from '@gnosis.pm/safe-core-sdk' const chainId = await ethAdapter.getChainId() const contractNetworks: ContractNetworksConfig = { [chainId]: { multiSendAddress: '<MULTI_SEND_ADDRESS>', safeMasterCopyAddress: '<MASTER_COPY_ADDRESS>', safeProxyFactoryAddress: '<PROXY_FACTORY_ADDRESS>' } } const safeSdk = await Safe.create({ ethAdapter, safeAddress, contractNetworks })
在此處查找有關包含所有可選參數的SafeFactory和Safe Core SDK API 參考的最新文件