如何从 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 打开但它说交易可能会失败并且不允许我继续。
知道为什么吗?
合同设置为“暂停”=“真”,因此交易未完成。
我已经使用这个地址在 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 打开但它说交易可能会失败并且不允许我继续。
知道为什么吗?
合同设置为“暂停”=“真”,因此交易未完成。