函数调用创建合同?

时间:2018-08-07 14:14:29

标签: javascript node.js web3 web3js

我正在使用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
}

注意:

  1. 合同功能非常简单,不应使用任何东西 远接近70万WEI气。

编辑/更新

它正在创建合同,但是它创建的哈希在收件人地址中显示[contract creation

0 个答案:

没有答案