Etherscan.io tiene una Verify Contract Code
característica que toma las entradas Solidity Contract Code
y Constructor Arguments ABI-encoded
.
Pregunta: ¿Existe una herramienta para aplanar sus contratos de solidez (escritos junto con el uso de Truffle) y tal vez incluso generar los argumentos del constructor codificados en ABI, para acelerar el uso de la función de verificación de contratos de Etherscan?
Intenté el script de python de Blockcat solidity-flattener
pero nunca pude hacerlo funcionar. Con la esperanza de descubrir un nuevo método alternativo.
He usado este en el pasado, con muy buenos resultados y una configuración mínima: 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"
Uso este que está diseñado para trabajar específicamente con Truffle y funciona muy bien, aunque está en una etapa temprana de su desarrollo: https://github.com/alcuadrado/truffle-flattener
Tratar de usar
--solc-paths=zeppelin-solidity=$(pwd)/node_modules/zeppelin-solidity/
Aquí hay un ejemplo de mi caso.
solidity_flattener contracts/MyTicketSale.sol --solc-paths=zeppelin-solidity=$(pwd)/node_modules/zeppelin-solidity/ --output result.sol
Espero que esto ayude
Acabo de lanzar un Solidity Flattener fácil de instalar: https://github.com/bokkypoobah/SolidityFlattener
Sí, existe truffle-flattener
( https://github.com/nomiclabs/truffle-flattener/ ) que combina todos sus archivos de contratos inteligentes en uno. Y funciona bien con Trufa. Aquí está cómo usarlo:
1) Instalar globalmente:
npm install -g truffle-flattener
2) Úselo, por ejemplo, para aplanar su contrato inteligente 'SimpleToken.sol' de esta manera:
truffle-flattener contracts/SimpleToken.sol > FlattenedSimpleToken.sol
(Tutorial simple paso a paso para usar el aplanador de trufas y verificar su código manualmente en etherscan.io: https://www.sitepoint.com/flattening-contracts-debugging-remix/ )
Sin embargo, si desea realizar una verificación de etherscan.io totalmente automatizada, hay openzeppelin verify
Y aquí se explica cómo usarlo: https://forum.openzeppelin.com/t/verify-with-openzeppelin-sdk/1206
Lo creé truffle-plugin-verify
para automatizar la verificación de contratos de Truffle en Etherscan.
npm install truffle-plugin-verify
truffle.js
otruffle-config.js
module.exports = {
/* ... rest of truffle-config */
plugins: [
'truffle-plugin-verify'
]
}
module.exports = {
/* ... rest of truffle-config */
api_keys: {
etherscan: 'MY_API_KEY'
}
}
Después de migrar su contrato de contrato a una red pública, puede verificarlo en Etherscan ejecutando:
truffle run verify ContractName [--network networkName]
Se puede encontrar más información en el repositorio o en mi artículo Verificar automáticamente los contratos inteligentes de Truffle en Etherscan .
NFN_NLN