Gas

開放 Zeppelin 眾籌需要太多 gas

  • November 12, 2017

編輯:我們在程式碼中發現了錯誤,endtime = starttime

我用松露部署了 zeppelin 流行眾籌的一個子類

契約 GorillaSale 是 Crowdsale {

功能 GorillaSale(uint256 _time_start,
uint256 _time_end,
uint256 _rate,
地址_錢包)

眾籌(_time_start,_time_start,_rate,_wallet)
{

}

函式 createTokenContract() 內部返回 (MintableToken) {
返回新的 GorillaToken();
}

}


合約 GorillaToken 是 MintableToken {

字元串公共常量名稱=“大猩猩令牌”;
字元串公共常量符號=“GRL”;
uint8 公共常數小數 = 4;

}

該合約部署在 ropsten 上,地址為 0xae09A60d2Ccb4431856229fB7B68b948ce583264,但如果我嘗試從 metamask 或 MEW 向其發送乙太幣,我會得到 4.5M 氣體交易的氣體估計值,這是巨大的,交易失敗。這裡是失敗 tx 0x86c2d36dc65e9e9f8e3b50a47a5f1619f9a2da0891c6327309c1ce97eb470e59 的範例

我懷疑有一些奇怪的東西與氣體無關。我想知道如何在 gas = 4.5M 的情況下進行眾籌,在 ropsten 中將是 30 美元的費用。

契約程式碼或您的呼叫方式肯定有問題。當 Metamask “知道” 由於 require() 條件失敗而導致交易失敗時,它會給你一個巨大的 gas 估計。

因此,您可能正試圖將乙太幣發送到狀態不正確的合約。例如,可能開始時間或結束時間設置不正確等。

引用自:https://ethereum.stackexchange.com/questions/30039