我试图部署一个基于[医]开泽平的众包合同,同时在geth和ganache上部署它,它可以完美地部署,但是每当我试图在testnet上部署合同时,我都会得到以下错误。
1_deploy.js
===========
Deploying Token Crowdsale:
Rate : 1
Wallet : 0xDc6234d567eBA03B465f519596E679A8d3959935
Opening Time : 1539087204
Closing Time : 1539238404
Cap : 4000000000000000
Individual Min Cap : 1000
Goal : 800000000000000
Token Address : 0x3FEc09Fab0dbb7EdaDbD4a4c06908a3Eb846308f
Token Wallet : 0xDc6234d567eBA03B465f519596E679A8d3959935
Deploying 'TokenCrowdsale'
--------------------------
> transaction hash: 0xb2f48b6418021476827c8aeeb51762927c319dc74cd10ffaaa8482f06e3dae5c
Error: *** Deployment Failed ***
"TokenCrowdsale" -- The contract code couldn't be stored, please check your gas limit...
at /home/paradox/.config/yarn/global/node_modules/truffle/build/webpack:/packages/truffle-deployer/src/deployment.js:361:1
at process._tickCallback (internal/process/next_tick.js:68:7)
我超过8000000的气体量,任何线索都将不胜感激。
发布于 2018-10-09 12:58:18
Ropsten有较低的气体限制-约4.7M,你不能自己设定,因为它是一个公共测试网。设置中的气体限值不能覆盖区块链的气体限制。您可以尝试Rinkeby -它有7693375,请检查stats页面顶部的数字:https://www.rinkeby.io/#stats。
检查以下相关问题:有没有理由罗普斯滕没有相同的区块气体限制的主板?
我尝试使用默认的gas限制6721975
,使用Ganache v6.1.8运行您的部署,但它甚至没有部署令牌:
truffle migrate --reset --network development
Using network 'development'.
Running migration: 1_deploy.js
Deploying Token:
Name : Sportist
Symbol : S
Decimals : 6
Cap : 10000000000000000
Deploying Token...
... undefined
Error encountered, bailing. Network state unknown. Review successful transactions manually.
Error: Exceeds block gas limit
你不必继承OpenZeppelin收藏中的每一个契约,你的众包合同显然太大了:
contract TokenCrowdsale is AllowanceCrowdsale, RefundableCrowdsale, IndividuallyCappedCrowdsale, StagedCrowdsale
尽管如此,当我把默认值6700000
,也就是不可信的,低于Ganache的块气体限制时,两个交易都通过了。
尝试将值小于目标区块链的限制。
https://ethereum.stackexchange.com/questions/60250
复制相似问题