var Tx = require('ethereumjs-tx').Transaction const Web3 = require('web3') const web3 = new Web3('https://ropsten.infura.io/YOUR_INFURA_API_KEY') const account1 = '' // Your account address 1 const privateKey1 = Buffer.from('YOUR_PRIVATE_KEY_1', 'hex')
构建交易对象
签署交易
广播交易
const txObject = { nonce: web3.utils.toHex(txCount), gasLimit: web3.utils.toHex(1000000), // 提高Gas上限 gasPrice: web3.utils.toHex(web3.utils.toWei('10', 'gwei')), data: data }
nonce – 这是账号的前一个交易计数。这个值必须是十六进制,可以使用Web3.js的web3.utils.toHex()转换。与前面章节中的交易操作相同。
to – 目标账户。此参数不需要,部署智能合约没有目标账户。
value – 要发送的以太币金额。此参数部署智能合约不需要。
gasLimit – 消耗Gas上限。部署合约比转账会消耗更多Gas,需要提高上限。
gasPrice – Gas价格,这里是 10 Gwei。与前面章节中的交易操作相同。
data – 要部署的智能合约字节码。
web3.js – 准备智能合约
web3.js – 执行部署