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
我需要在“值”下方的代码中实现 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