React 中 ethersJs 的具体成本值如何

How specific Cost Value to ethersJs in React

我需要在“值”下方的代码中实现 ETH 成本,因为在 Solidity 中我需要 msg.value 并且为了能够撒谎,我必须在代码中放置一个参数“值”在 js 中,但我不知道如何,你可以帮助吗?我还附上了带有 mint 的智能合约部分。

React JS file

  async function handleMint() {
    if (mintFinish === true) {
      setMintFinish(false);
    } else {
      setMintFinish(true);
    }

    if (window.ethereum) {
      const provider = new ethers.providers.Web3Provider(window.ethereum);
      const signer = provider.getSigner();
      const contract = new ethers.Contract(
        mintExampleAddress,
        mintExampleABI.abi,
        signer
      );
      console.log(signer)
      try {
        // console.log(contract)
        const response = await contract.mint(mint);
        console.log(response);
      } catch (err) {
        console.log(err);
      }
    }
  }

Solidity file

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

    _mintLoop(msg.sender, _mintAmount);
  }

你如何使用 etherjs 并在 mint 函数中看到智能合约代码,我想成本是一个 public 变量并且可以从合约外部读取,你得到成本并乘以价值通过薄荷数量参数,像这样

const cost = await contract.cost();
const response = await contract.mint(mint,{value:cost.mul(mint)});

你必须记住使用大数字,所有 return 值都是数字将被 return 编辑为一个,我在这里做的是从合同中获取成本并乘以对于 mint 并将其作为函数调用中的最后一个参数传递给 value