Contract-Development
如何使用 ethers.js 和 alchemy-sdk 實例化合約實例
(從公開的 Alchemy discord 中找到這個,並想在這裡提出問題,以便它可以線上被索引💙)
我正在嘗試在我的 javascript 程式碼中實例化契約,以便我可以呼叫 ABI 方法。
但是,當我嘗試使用該
alchemy-sdk
對象創建一個new Contract
時,我得到一個錯誤。這就是我設置它的方式:
const CompoundorContract = new ethers.Contract( CONSTANTS.ADDRESSES.COMPOUNDER_CONTRACT_ADDRESS, CONSTANTS.CONTRACTS.COMPOUNDOR_ABI, alchemy.core );
這是我得到的錯誤:
Error: invalid signer or provider (argument="signerOrProvider", value={"config":{"apiKey":"my_key","network":"opt-mainnet","maxRetries":5}},code=INVALID_ARGUMENT,version=contracts/5.6.2
有誰知道如何解決這一問題?
試試這個使用 alchemy-sdk 連接到 eth 主網來載入合約實例的例子。
我認為關鍵區別在於您應該使用
await alchemy.config.getProvider()
而不是您目前正在使用的alchemy.core
這是因為您需要實例化 Alchemy 提供程序連接的一個實例,而不是使用命名空間 sdk 模組
alchemy.core
而不是傳遞
alchemy.core
,傳遞 this 的返回值const ethersProvider = await alchemy.config.getProvider()
最後:
const CompoundorContract = new ethers.Contract( CONSTANTS.ADDRESSES.COMPOUNDER_CONTRACT_ADDRESS, CONSTANTS.CONTRACTS.COMPOUNDOR_ABI, ethersProvider );
如果不起作用,請發表評論。
如果可行,請投票贊成:)