Truffle

Truffle 如何知道通過 truffle migrate 發布的合約地址?

  • February 17, 2018

在 Truffle 的文件中,它說DeployedAddresses.solTruffle 如何辨識和儲存通過truffle migrate.

這個文件是如何工作的,它是什麼樣的?如果我發布一個Adoption合約,Truffle 怎麼知道Adoptionintruffle console指的是那個合約?

好曲。據我所知。Truffle 會將你的合約地址儲存在**build/contacts/$$ CONTRACT.json $$**文件

Truffle 將網路 json 對像下的合約地址映射到索引。

"networks": {
   "1": {
     "events": {},
     "links": {},
     "address": "0x77685437e762aaa90d4b6924aa9445c1198013f1"
   }
 },
 "schemaVersion": "1.0.1",
 "updatedAt": "2018-02-16T10:49:18.298Z"
}

如果您刪除 json 文件,它將創建具有新合約 ID 的新 json 文件。

當您執行 migrate/console 時,truffle 將引用您的

$$ CONTRACT.json $$具有相應網路和地址的文件。

Truffle 要求您通過為 Adoptions 合約創建部署程序來定義遷移。

例如migrations/2_deploy_contracts.js

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

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

建構合約truffle build還會創建一個 JSON 文件build/contracts/Adoption.json,其中包含所有必需的元數據。

DeployedAddresses.sol在執行測試時由 truffle 在執行時創建。

另見:https ://github.com/trufflesuite/truffle/issues/471#issuecomment-315166855

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