Truffle
Truffle 退出並顯示“錯誤:無法儲存合約程式碼,請檢查您的 gas 數量。”遷移 1_initial_migration.js 時出錯
我正在嘗試
truffle init
使用 Parity 將基本的松露範例(通過創建的範例)遷移到 rospten,但即使合約已正確部署在 Rospten 上,我也會收到以下錯誤:利用網路“發展”。
執行遷移:1_initial_migration.js 部署遷移…
… 0x3f8cd1b1e98935feb4616e810f4ce0d6ebfbd7355ea8a8e9695a490173d8446e
遇到錯誤,放棄。網路狀態未知。手動查看成功的交易。錯誤:無法儲存合約程式碼,請檢查您的gas量。在 Object.callback (/usr/lib/node_modules/truffle/buil/cli.bundled.js:218485:46)
at /usr/lib/node_modules/truffle/build/cli.bundled.js:34886:25 at /usr/lib/node_modules/truffle/build/cli.bundled.js:220423:9 at /usr/lib/node_modules/truffle/build/cli.bundled.js:72910:11 at /usr/lib/node_modules/truffle/build/cli.bundled.js:204149:9 at XMLHttpRequest.request.onreadystatechange (/usr/lib/node_modules/truffle/build/cli.bundled.js:205574:13) at XMLHttpRequestEventTarget.dispatchEvent (/usr/lib/node_modules/truffle/build/cli.bundled.js:73069:18) at XMLHttpRequest._setReadyState (/usr/lib/node_modules/truffle/build/cli.bundled.js:73359:12) at XMLHttpRequest._onHttpResponseEnd (/usr/lib/node_modules/truffle/build/cli.bundled.js:73514:12) at IncomingMessage.<anonymous> (/usr/lib/node_modules/truffle/build/cli.bundled.js:73474:24)
從這裡可以看出,合約已正確部署:https ://ropsten.etherscan.io/tx/0x3f8cd1b1e98935feb4616e810f4ce0d6ebfbd7355ea8a8e9695a490173d8446e
這是 1_initial_migrations.js 的程式碼:
var Migrations = artifacts.require("./Migrations.sol"); module.exports = function(deployer) { deployer.deploy(Migrations, {from: "0x004995b1caD48E77e7A53e535Bb82c8189B80632", gas:2000000}); };
我剛剛找到了我自己問題的答案。
這一切都歸結為以下奇偶校驗錯誤導致 getCode 和 getTransactionReceipt 之間的競爭條件:https ://github.com/paritytech/parity/issues/5538
如果通過標誌在 geth 兼容模式下執行奇偶校驗
--geth
,則松露遷移按預期工作。