Etherscan.io hat eine Verify Contract Code
Funktion, die die Eingaben Solidity Contract Code
und Constructor Arguments ABI-encoded
.
Frage: Gibt es ein Tool, mit dem Sie Ihre (in Verbindung mit der Verwendung von Truffle geschriebenen) Soliditätsverträge glätten und vielleicht sogar die ABI-codierten Konstruktorargumente generieren können, um Ihre Nutzung der Vertragsüberprüfungsfunktion von Etherscan zu beschleunigen?
Versuchte das Python-Skript von Blockcat solidity-flattener
, konnte es aber nie zum Laufen bringen. In der Hoffnung, eine neue alternative Methode zu entdecken.
Ich habe dieses in der Vergangenheit mit sehr guten Ergebnissen und minimalem Setup verwendet: https://github.com/oraclesorg/oracles-combine-solidity
git clone https://github.com/oraclesorg/oracles-combine-solidity
cd oracles-combine-solidity
npm install
npm start "path_to_not_flat_contract_definition_file.sol"
Ich verwende dies, das speziell für die Arbeit mit Truffle entwickelt wurde, und es funktioniert großartig, obwohl es sich noch in der Entwicklung befindet: https://github.com/alcuadrado/truffle-flattener
Versuchen zu benutzen
--solc-paths=zeppelin-solidity=$(pwd)/node_modules/zeppelin-solidity/
Hier ist ein Beispiel aus meinem Fall
solidity_flattener contracts/MyTicketSale.sol --solc-paths=zeppelin-solidity=$(pwd)/node_modules/zeppelin-solidity/ --output result.sol
Hoffe das hilft
Ich habe gerade einen einfach zu installierenden Solidity Flattener veröffentlicht – https://github.com/bokkypoobah/SolidityFlattener
Ja, es gibt truffle-flattener
( https://github.com/nomiclabs/truffle-flattener/ ), das alle Ihre Smart-Contracts-Dateien zu einer kombiniert. Und es funktioniert gut mit Trüffel. So verwenden Sie es:
1) Global installieren:
npm install -g truffle-flattener
2) Verwenden Sie es zum Beispiel, um Ihren Smart Contract 'SimpleToken.sol' so zu glätten:
truffle-flattener contracts/SimpleToken.sol > FlattenedSimpleToken.sol
(Einfache Schritt-für-Schritt-Anleitung zur Verwendung von Truffle Flattener und zur manuellen Überprüfung Ihres Codes auf etherscan.io: https://www.sitepoint.com/flattening-contracts-debugging-remix/ )
Wenn Sie jedoch eine vollautomatische etherscan.io-Verifizierung durchführen möchten, gibt es openzeppelin verify
Und hier ist, wie man es verwendet: https://forum.openzeppelin.com/t/verify-with-openzeppelin-sdk/1206
Ich habe erstellt truffle-plugin-verify
, um die Truffle-Vertragsüberprüfung auf Etherscan zu automatisieren.
npm install truffle-plugin-verify
truffle.js
oder truffle-config.js
-Datei hinzumodule.exports = {
/* ... rest of truffle-config */
plugins: [
'truffle-plugin-verify'
]
}
module.exports = {
/* ... rest of truffle-config */
api_keys: {
etherscan: 'MY_API_KEY'
}
}
Nachdem Sie Ihren Vertragsvertrag in ein öffentliches Netzwerk migriert haben, können Sie ihn auf Etherscan überprüfen, indem Sie Folgendes ausführen:
truffle run verify ContractName [--network networkName]
Weitere Informationen finden Sie im Repository oder in meinem Artikel Truffle Smart Contracts auf Etherscan automatisch verifizieren .
NFN_NLN