51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

10、web3.js 部署智能合约

web3.js 部署智能合约

本章介绍怎么使用web3.js部署智能合约。

我们将使用与web3.js – 交易操作相同的app.js文件。

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 1const 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 – 要部署的智能合约字节码。

data参数是以十六进制表示的,已编译合约的的字节码。


赞(7)
未经允许不得转载:工具盒子 » 10、web3.js 部署智能合约