我正在使用NodeJS后端调用可支付的智能合约功能。但是,当我给出最大可能值时,Rinkeby上的简单功能就用光了。它应该调用一个函数,但是它正在创建合同。为什么会这样?
主要代码:
var privateKey = '..'
var nodeWalletAddress = '..' // Backend's Wallet address
const account = web3.eth.accounts.privateKeyToAccount(privateKey);
var gas = 7000000;
let method = contract.methods.myMethod(params);
var encodedABI = method.encodeABI();
var tx = {
from: nodeWalletAddress,
to: contract.address,
gas: gas,
gasPrice: 1000000000,
data: encodedABI
};
signTransaction(tx, privateKey);
signTransaction函数:
function signTransaction(tx, privateKey) {
log('Singing transaction..')
web3.eth.accounts.signTransaction(tx, privateKey).then(signed => {
var tran = web3.eth.sendSignedTransaction(signed.rawTransaction);
tran.on('confirmation', (confirmationNumber, receipt) => {
console.log('confirmation: ' + confirmationNumber);
});
tran.on('transactionHash', hash => {
console.log('hash');
console.log(hash);
});
tran.on('receipt', receipt => {
console.log('reciept');
console.log(receipt);
});
tran.on('error', error => {
console.log('txError')
console.log(error)
});
});
}
登录
Singing transaction..
hash
0xfea700ce60035e3d06eadb7135d8fde74d0dac43f04061031e0c3228e0dd38ea
confirmation: 0
txError
Error: Transaction ran out of gas. Please provide more gas:
{
"blockHash": "0xd77f1b383625f9e2deb56ffa257d56f877f2fb58637230ec6b129ca08687fae5",
"blockNumber": 2768086,
"contractAddress": "0xccEAc5bC12777038793351DA67B1730bCb368b93",
"cumulativeGasUsed": 7090940,
"from": "0x40b046d0563c498e5b13414ba9e41ed60291f5b9",
"gasUsed": 7000000,
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"status": false,
"to": null,
"transactionHash": "0xfea700ce60035e3d06eadb7135d8fde74d0dac43f04061031e0c3228e0dd38ea",
"transactionIndex": 3
}
注意:
编辑/更新
它正在创建合同,但是它创建的哈希在收件人地址中显示[contract creation