Truffle-Migration

儘管呼叫了 truffle migrate,但未部署合約

  • August 2, 2021

我正在嘗試呼叫我創建的契約。

我已經像這樣設置了我的松露部署腳本:

var SafeYieldAggregator = artifacts.require("SafeYieldAggregator")

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

我跑了:

松露編譯松露遷移

返回輸出:

正在編譯你的合約… ============================ √ 從 solc-bin 獲取 solc 版本列表。嘗試#1 一切都是最新的,沒有什麼要編譯的。

在我的應用程序中,我附加了我的松露合約 $.getJSON(‘SafeYieldAggregator.json’, function(data) { // 獲取必要的合約工件文件並使用 @truffle/contract var safeYieldArtifact = data; App.contracts.SafeYieldAggregator = TruffleContract(safeYieldArtifact);

 // Set the provider for our contract
 App.contracts.SafeYieldAggregator.setProvider(App.web3Provider);
});

然後我嘗試呼叫我的契約:

App.contracts.SafeYieldAggregator.deployed().then(function(instance) {
   yieldAggregatorInstance = instance;

   // Execute adopt as a transaction by sending account
   return yieldAggregatorInstance.supply(1, {from: account});
 })

我收到一個錯誤:

契約尚未部署到檢測到的網路(網路/工件不匹配)

我最好的猜測是松露認為這已經被適當地部署了。我的配置設置如下:

networks: {
 development: {
   host: "127.0.0.1",
   port: 8545,
   network_id: "*" // Match any network id
 },
 develop: {
   port: 8545
 }
}

我在分叉主網的同一個埠上執行 ganache-cli

您可以嘗試執行以下命令:

truffle develop
compile -all
migrate --reset 

如果這仍然不起作用,請對您的契約進行一些更改,例如添加空格。您可以嘗試,上帝保佑您!

可能是因為你之前執行了那個 JS 遷移文件。如果你這樣做truffle migrate了,Truffle 將不會再次執行之前成功的遷移(即使你修改了合約)。您可以在何時執行遷移 https://blockheroes.dev/complex-migration/下閱讀有關它的更多資訊。

要再次重新部署所有合約,只需執行truffle migrate --reset

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