如何解决如何测试合约接收 ERC721 代币的能力?
我正在 Truffle 中测试我的合同。我启用了合约以接收 ERC721 代币:
chrome is not defined
有没有办法使用 Mocha 和 Chai 模拟将令牌发送到此合约?
解决方法
在 EVM 之外(例如在 JS 测试中),无法检查交易的返回值。只有它的状态(成功/恢复)、发出的事件(在你的情况下是非)和其他一些元数据。您还可以检查调用的返回值,如 assert.equal
语句。
contract('MyContract',() => {
it('receives a token',async () => {
const tx = await myContract.onERC721Received(
'0x123',// address
'0x456',// address _from
1,// uint256 _tokenId
[0x01,0x02] // bytes calldata
);
assert.equal(tx.receipt.status,true); // tx succeeded
assert.equal(await contract.nftContract,'0x123');
assert.equal((await contract.tokenId).toNumber(),1);
assert.equal(await contract.tokenAdded,true);
});
});
文档:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。