Truffle-Migration
儘管呼叫了 truffle migrate,但未部署合約
我正在嘗試呼叫我創建的契約。
我已經像這樣設置了我的松露部署腳本:
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