web3.eth.Contract - 合约构造函数

优质
小牛编辑
131浏览
2023-12-01

web3.eth.Contract类简化了与以太坊区块链上智能合约的交互。创建合约对象时, 只需指定相应智能合约的json接口,web3就可以自动地将所有的调用转换为底层 基于RPC的ABI调用。

通过web3的封装,与智能合约的交互就像与JavaScript对象一样简单。

实例化一个新的合约对象:

new web3.eth.Contract(jsonInterface[, address][, options])

参数:

  • jsonInterface - Object: 要实例化的合约的json接口
  • address - String: 可选,要调用的合约的地址,也可以在之后使用 myContract.options.address = '0x1234..' 来指定该地址
  • options - Object : 可选,合约的配置对象,其中某些字段用作调用和交易的回调:
    • from - String: 交易发送方地址
    • gasPrice - String: 用于交易的gas价格,单位:wei
    • gas - Number: 交易可用的最大gas量,即gas limit
    • data - String: 合约的字节码,部署合约时需要

返回值:

Object: The contract instance with all its methods and events.

示例代码:

var myContract = new web3.eth.Contract([...], '0xde0B295669a9FD93d5F28D9Ec85E40f4cb697BAe', {
    from: '0x1234567890123456789012345678901234567891', // default from address
    gasPrice: '20000000000' // default gas price in wei, 20 gwei in this case
});