In der Dokumentation von Truffle heißt DeployedAddresses.sol
es, wie Truffle die Adressen von Verträgen identifiziert und speichert, die über in der Blockchain veröffentlicht werden truffle migrate
.
Wie funktioniert diese Datei und wie sieht sie aus? Wenn ich einen Adoption
Vertrag veröffentliche, woher weiß Truffle, dass sich das Wort Adoption
in truffle console
auf diesen Vertrag bezieht?
Gut So weit ich weiß. Truffle speichert Ihre Vertragsadresse in der Datei build/contacts/[CONTRACT.json].
Truffle ordnet die Vertragsadresse unter dem Netzwerk-JSON-Objekt dem Index zu.
"networks": {
"1": {
"events": {},
"links": {},
"address": "0x77685437e762aaa90d4b6924aa9445c1198013f1"
}
},
"schemaVersion": "1.0.1",
"updatedAt": "2018-02-16T10:49:18.298Z"
}
Wenn Sie die JSON-Datei löschen, wird eine neue JSON-Datei mit einer neuen Vertrags-ID erstellt.
Wenn Sie „migrate/console“ ausführen, verweist Truffle auf Ihre [CONTRACT.json]-Datei mit dem entsprechenden Netzwerk und der entsprechenden Adresse.
Truffle erfordert, dass Sie Migrationen definieren, indem Sie einen Deployer für den Adoptionsvertrag erstellen.
Zum Beispielmigrations/2_deploy_contracts.js
var Adoption = artifacts.require("Adoption");
module.exports = function(deployer) {
deployer.deploy(Adoption);
};
Beim Erstellen des Vertrags mit truffle build
wird auch eine JSON-Datei erstellt build/contracts/Adoption.json
, die alle erforderlichen Metadaten enthält.
DeployedAddresses.sol wird zur Laufzeit von Truffle erstellt, wenn Sie Tests ausführen.
Siehe auch: https://github.com/trufflesuite/truffle/issues/471#issuecomment-315166855
Mandar Vaze
kiecodes