我做了这个之前的帖子,我将链接到这里,以便如果其他人在这个udemy课程中有这个问题可以帮助他们继续。它也有一些更多的背景信息,我正在做的可能是有用的。
我正在尝试使用编译的byteCode
和ABI
创建一个合约,以便我可以部署我的合约。在课程中,它提到创建类型ContractFactory
的对象,他使用greetingsContract. = web3.eth.contract(contractABI)
来创建该对象。我使用greetingsContract = new web3.eth.Contract(contractABI)
,但它不是那种数据类型。它创建了一个Contract
类型的对象。然后他使用这个代码greetingsDeployed = greetingsContract.new({data:byteCode, from: web3.eth.accounts[0], gas: 47000000})
来部署它。
据我所知,这是这种代码的旧格式,将不再像讲师那样工作。我该如何使用我拥有的ABI和字节码创建一个合约呢?
我用这两行代码用我编译的ABI和byteCode创建了一个契约。第一行创建了新的契约。
第二行部署合约,并将有地址的新合约实例的地址附加到第1行中先前创建的合约。这将创建合同,并出现在Ganache中的transactions选项卡中。
greetingsContract = new web3.eth.Contract(contractABI)
greetingsDeployed = greetingsContract.deploy({data: '0x' + byteCode}).send({from: account0, gas: 6721975, gasPrice: 1}).then((greetingsInstance) => {greetingsContract.options.address=greetingsInstance.options.address});