Ganache

為什麼松露遷移無法部署合約?“無法讀取未定義的選項”

  • September 14, 2020

我正在嘗試在本地測試乙太坊鏈上部署本地版本的SushiSwap 。我正在使用GanacheTruffle在本地部署智能合約。

當我執行truffle migrate並嘗試部署任何合約時,遷移中的第二個文件2_deploy_contracts.js失敗並出現錯誤:

TypeError: Cannot read property 'options' of undefined at Contract (C:\Users\O\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\contract\lib\contract\index.js:31:1)

這裡是程式碼供參考。我已添加要部署的 SushiToken.sol 合約。

var SushiToken = artifacts.require("SushiToken");

module.exports = function (deployer) {
 deployer.deploy(SushiToken()); //This new line throws the error
};

更多上下文:

SushiToken()是 SushiToken.sol 的一個實例。請參見上面程式碼中的第 1 行。如果我將.sol副檔名添加到上面的程式碼中,程式碼仍然會失敗。

這引出了我的問題:

為什麼 truffle 無法部署合約?

以下程式碼應該可以工作:

const SushiToken = artifacts.require("./SushiToken.sol")

module.exports = function(deployer) {
   deployer.deploy(SushiToken);
};

您只需要替換SushiToken()SushiToken.

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