我有一段代码。我需要调用abi里面的buyBox方法,并把账户授权给合约,它提示:unknown account #0 (operation="getAddress", code=UNSUPPORTED_OPERATION, version=providers/5.2.0),这让我很头疼。

//合约地址 let contractAddress = '0x125b453241DfaEF8C41AE3b6FB2D761417'; //我的账户 let address = "0x5Ce1Bf6448a8063124C02CE943359B92f";

let ethersProvider = new ethers.providers.JsonRpcProvider('https://bsc-dataseed.binance.org/');

const Contract = new ethers.Contract( contractAddress, abi, ethersProvider.getSigner() );

let transaction = Contract.buyBox(1)

console.log(transaction)

请先 登录 后评论

最佳答案 2022-07-07 09:08

ethersProvider 没有 singer , getSigner 自然获得不了账号。

你应该是后端使用这段代码吧, 你的代码只有在前端使用钱包注入的 provider 时有效, 因为此时 provider 包含了钱包信息(即signer).

你这里需要使用 Contract 去connect 一个 ethers.Wallet , 然后在发起交易。

请先 登录 后评论

其它 0 个回答