我正在用JS编写我的智能合同测试,并使用Tru显。我希望在我的合同中测试一个需要令牌地址和契约地址作为参数的特定函数:
address _asset, //address base token, like USDC
address _payee,
uint8 _dueDate,
uint256 _amount,
bytes calldata _paymentReference,
address _cometAddress
)当我只传递mainnet USDC令牌地址和mainnet Comet地址时,测试错误将输出:
it("should be able to make an ERC20 payment", async () => {
await instance.payInvoiceERC20(
"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", //USDC mainnet token address
accounts[8], //setting a payee
2,
10000000, //10 USDC, 6 decimals for USDC token
"0x494e56332d32343034", //payment ref. in bytes
"0xc3d688B66703497DAA19211EEdff47f25384cdc3" //Comet Address USDC mainnet
)
})错误信息:“退出与错误(状态0)。原因:地址:呼叫非合同。”
从我在网上读到的以及2018-2019年的答案来看,我知道我需要以某种方式实例化ERC20令牌契约(+ Comet合同)。最好和最快的方法是什么?
发布于 2023-04-29 01:28:21
最简单的解决方案是使USDC地址可配置。然后,您可以在testnet中部署自己的令牌副本,并使用该地址模拟支付。
https://ethereum.stackexchange.com/questions/149608
复制相似问题