Truffle
Truffle 如何知道通過 truffle migrate 發布的合約地址?
在 Truffle 的文件中,它說
DeployedAddresses.sol
Truffle 如何辨識和儲存通過truffle migrate
.這個文件是如何工作的,它是什麼樣的?如果我發布一個
Adoption
合約,Truffle 怎麼知道Adoption
intruffle 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