Web3js
創建新契約時,我收到“無法儲存契約程式碼”錯誤,但仍會創建契約
Sale.new({ from: state.account, value: value, gas: 4000000 }).then((instance) => { // do something with instance }).catch((err) => { alert(err) })
當上面的程式碼執行時,我有時會收到這個錯誤:
The contract code couldn't be stored, please check your gas amount.
我正在嘗試創建的契約與solidity 文件中的安全遠端支付契約幾乎完全相同,可能只是多了幾行。
奇怪的是合約實際上被創建了,我可以在 MetaMask 中看到成功的交易,並且從我的賬戶中減去了乙太幣。我什至可以
Sale.at(<new contract address>)
用來與創建的契約進行互動。我一直在 Ropsten 網路中進行測試。
您在這裡沒有提到的一件事是,以前這工作正常,但大約一周前它停止工作。
這讓我覺得這是 MetaMask 的一個錯誤,很抱歉我們還沒有弄清楚: https ://github.com/MetaMask/metamask-plugin/issues/1361
這感覺就像是那些非常廣泛的錯誤之一。當我添加一個函式參數而不更新我的 ABI 文件時遇到它(我將函式定義和函式保存在單獨的文件中) - 這導致函式定義與實現不一致。
希望對某人有所幫助。