[英]The contract code couldn't be stored, please check your gas limit : Ethereum Smart Contract Deployment Failed:
我正在学习如何使用solidity、web3 和Javascript 开发和部署以太坊智能合约<\/strong>。
我已经成功地在
Ganache<\/code><\/strong>上部署了一个合约。
现在,当我尝试使用
truffle-hdwallet-provider<\/code><\/strong>在
Rinkby Test Net<\/code><\/strong>部署它时,它只是失败了。
我使用
truffle-hdwallet-provider<\/code><\/strong>成功创建了
web3<\/code><\/strong>对象,并且我成功获得了帐户列表,但部署到测试网总是失败。
您可以在此处检查我的部署是否失败。<\/strong>
https:\/\/rinkeby.etherscan.io\/address\/0x2f20b8F61813Df4e114D06123Db555325173F178<\/a>
这是我的
deploy script<\/code>
这是我的合同
编辑:我尝试使用Remix<\/strong>并成功部署,但尝试使用truffle-hdwallet-provider<\/strong>时出现错误:无法存储合约代码,请检查您的气体限制。<\/strong> 我绑定了不同的气体值(可能达到最大值),但仍然没有结果。"
我发现bytecode
不包含0x
导致此问题。
通过将0x
与字节码连接可以解决此问题。
我遇到了这个问题,并通过将扁平化的代码粘贴到Remix中来解决了该问题,然后给出了更好的错误描述:合同中有一个我未正确实现的接口(错误的函数签名)。 检查您的界面实现。 尝试部署“抽象合同”会出现此错误。
在字节码之前使用这个 '0x0' +。
.deploy({ data:'0x0' + bytecode }) .send({ gas: "1000000", gasPrice: "5000000000", from: accounts[0] });
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.