javascript 将已签名的交易发送到以太坊的合同

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 将已签名的交易发送到以太坊的合同相关的知识,希望对你有一定的参考价值。

// Sending a signed transaction to a contract
// using the contract's owner's private key
// "web3": "^1.0.0-beta.30"
// "ethereumjs-tx": "^1.3.3",
// createItem function takes (name, price) as args

const web3 = new Web3(new Web3.providers.HttpProvider(INFURA_URL))
const myContract = new web3.eth.Contract(MY_ABI, MY_CONRACT_ADDRESS)
const ownerAccount = ""
const ownerPrivateKey = ""

web3.eth.getTransactionCount(ownerAccount, (err, nonce) => {
  if (err) {
    console.log(err)
    callback(err)
    return
  }

  const data = myContract.methods.createItem(name, price).encodeABI()
  const tx = new EthereumTx({
    nonce: nonce,
    gasPrice: web3.utils.toHex(web3.utils.toWei('20', 'gwei')),
    gasLimit: 100000,
    to: MY_CONRACT_ADDRESS,
    value: 0,
    data: data,
  })

  tx.sign(new Buffer(ownerPrivateKey, 'hex'))

  const raw = '0x' + tx.serialize().toString('hex')

  web3.eth.sendSignedTransaction(raw, (err, transactionHash) => {
    if (err) {
      console.log(err)
      callback()
      return
    }

    callback(transactionHash)
  })
})

以上是关于javascript 将已签名的交易发送到以太坊的合同的主要内容,如果未能解决你的问题,请参考以下文章

是否可以从以太坊的另一个账户支付交易费用?

以太坊钱包开发系列4 - 发送Token(代币)

以太坊钱包开发系列4 - 发送Token(代币)

以太坊/Solidity 新手:方便地发送多笔交易

基于以太坊的开发,教你如何节省手续费

以太坊: ETH 发送交易 sendRawTransaction 方法数据的签名 和 验证过程