如何从 Javascript 向 solidity 智能合约函数输入数据?

How to input data to a solidity smart contract function from Javascript?

我已经使用这个地址在 Rinkeby 测试网络上部署了智能合约:

0x5e9C4F23d85c28fAD0E7B117B3E0fc94A2da07b0

我已成功连接到合约并可以使用其他功能,如setPaused等。 我正在尝试使用此智能合约的铸币功能,但铸币时出现错误。

这是我的 html 代码:

<!DOCTYPE html>
<html>
  <head>
    <title>Basic Template</title>
    <script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>
  </head>

  <body>
    <button id="btn-login" onclick="login();">Connect Metamask</button>
    <button id="mint">mint</button>
    <script type="text/javascript" src="./abi.js"></script>
    <script type="text/javascript" src="./mint.js"></script>
  </body>
</html>

这是我的 javascript 函数 mint:

async function mint() {
  const accounts = await web3.eth.getAccounts();
  const contract = new web3.eth.Contract(contractAbi, nft_contract_address);
  contract.methods.mint(1).send({from: accounts[0], value: 10000000000000000})
}

document.getElementById("mint").onclick = mint;

这是我的稳固函数:

  function mint(uint256 _mintAmount) public payable mintCompliance(_mintAmount) {
    require(!paused, "The contract is paused!");
    require(msg.value >= cost * _mintAmount, "Insufficient funds!");

当我按下 mint 按钮时,metamask 打开但它说交易可能会失败并且不允许我继续。

知道为什么吗?

合同设置为“暂停”=“真”,因此交易未完成。