我正在尝试测试我正在构建的 ERC-721 合同的一些功能。
该合约已成功部署到我的本地 Ganache 区块链,并使用了一些可用的 OpenZeppelin 合约接口。
目前的 mint 函数如下所示:
function mint() public payable {
require(!hasExceededMaxTokenAmount, "All available tokens have already been minted!");
require(balanceOf(msg.sender) == 0, "Only one token can be minted per account!");
require(msg.value >= price, "Incorrect amount of ether sent. Minting a token requires 0.015 ether");
_safeMint(msg.sender, totalSupply() + 1);
if (totalSupply() == MAX_MINT_AMOUNT) {
hasExceededMaxTokenAmount = true;
}
}
打开truffle console
我检索了我的合同contract = await myContract.deployed()
,现在我正在尝试测试该函数的mint
功能。问题是这个函数是payable
并且需要msg.sender
有一个值,所以当我contract.mint()
单独调用它时会抛出一些错误。
我的问题是:考虑到该功能是如何构建的,我如何使用本地 Ganache 区块链上的另一个帐户来与该功能交互并为该帐户铸造一个代币?
谢谢你。