¿Cómo se codifican los argumentos de constructor ABI?

Estoy tratando de verificar un contrato ETH, pero completo el formulario etherscan y recibo este mensaje:

" ¡Error! No se puede verificar el código fuente Faltan argumentos de constructor para la función JL(uint256 initialSupply, string tokenName, string tokenSymbol) "

Mi contrato fue creado usando https://remix.ethereum.org/ En este enlace está mi código de contrato inteligente - JLC.json - JLC.sol https://gist.github.com/5067bbba4b0640e5679d85f8625c198e

Soy nuevo en esto y solo estoy probando cómo funcionan los contratos inteligentes.

Espero su apoyo chicos.

Gracias.

Respuestas (4)

Puede usar una herramienta en línea simple para obtener parámetros de constructor codificados en abi https://abi.hashex.org . Simplemente pegue abi e ingrese los valores de los parámetros. Los parámetros codificados en Abi se calcularían automáticamente.

Luego simplemente copie y pegue el resultado en la entrada de parámetros del constructor etherscan.io.

Aquí hay un ejemplo del uso de esta herramienta.ingrese la descripción de la imagen aquí

¿Tienes una idea de cómo se puede hacer eso mediante programación usando web3?
Se podría hacer mediante programación con esta biblioteca: github.com/ethereumjs/ethereumjs-abi . O puede echar un vistazo a este método: web3js.readthedocs.io/en/1.0/web3-utils.html#soliditysha3

Si su contrato fue creado por otro contrato, es posible que el detalle de la transacción no tenga una manera fácil de obtener los argumentos del constructor en forma codificada ABI. En este caso recomiendo usar las funciones web3 abi para este propósito como web3.eth.abi.encodeParameters.

para verificar su contrato, solo necesita el JLC.sol exactamente igual cuando se implementó. por cierto, puede ver su código ABI en el remix, haga clic en el botón compilar> detalles

Lo intento. Pero no puedo identificar los argumentos del constructor en el código ABI. I have understood that constructor arguments should be something like this: 00000000000000000000000000000000000000000000000000000002540be400000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000044e4154410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044e41544100000000000000000000000000000000000000000000000000000000

Puede obtener los argumentos del constructor de la transacción de implementación . Por ejemplo, implementé mi contrato en https://ropsten.etherscan.io/tx/0x3b0110386e5409a81548beed2020ab3d12f221357905802a2eaf5f7a9d594e52 y los últimos 64 caracteres de datos de entrada tienen los argumentos de constructor correctos (codificados con ABI).

Esta regla es válida en mi contrato porque el constructor requiere solo 1 parámetro: una dirección => función Activo (dirección _SCIssuers) => https://ropsten.etherscan.io/address/0xefb27d9eaa381e958319052dd274c9866f5abc8c#code