[英]Calling a smart contract function using truffle/hdwallet-provider
我有一個關於多邊形的合同,我想調用一個寫 function setPrice(uint256 _price)
但是當我運行這個代碼時,我得到一個錯誤:
{代碼:-32000,消息:'交易低估'}
智能合約: https://polygonscan.com/address/0x8835c31178f8f3407d4588be49532de1c02c3a04
這是我的代碼:
const Web3 = require("web3");
const WalletProvider = require("@truffle/hdwallet-provider");
const http = require("http");
const { release } = require("os");
const mysql = require('mysql');
const conn = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database:"nft",
});
conn.connect(function(err) {
if (err) throw err;
//console.error("Connected!");
});
let provider = new WalletProvider({
mnemonic: {
phrase: '*****myWalletPhrase*****'
},
providerOrUrl: "https://rpc-mainnet.matic.quiknode.pro/"
});
const web3 = new Web3(provider);
const dexABI ="smartContractAbi";
const contract_address = "0x8835c31178F8f3407d4588Be49532De1c02C3A04";
const contract = new web3.eth.Contract(dexABI, contract_address);
function toFixed(x) {
// some code
}
http.createServer(async (req, res) => {
if(req.url != '/favicon.ico')
{
try {
const accounts = await web3.eth.getAccounts();
//console.error(accounts);
let user= accounts[6];
let amount=0;
conn.query(`SELECT * FROM dollor_rate`, async function(err,result){
if (err) return err;
console.error("this",result[0].usd_rate);
amount=toFixed(result[0].usd_rate).toString();
await contract.methods.setPrice(''+amount).send({from:user,gas:21000},function(err1,receipt){
if(err1)
console.error("Error==>",err1);
else
console.error("Erorr1=======",receipt);
});
});
} catch (error) {
console.log(error);
}
res.end();
}
})
.listen(8080);
您為交易提供的汽油費很低。 嘗試增加您在交易中提供的氣體。 這個和這個類似, https://stackoverflow.com/a/67974018/7453857
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.