¿Cómo usar la compilación evm?

He estado probando con evm y no obtengo ningún resultado.

Código -

pragma solidity ^0.4.18;

contract d8 {

    function myBalance() pure public returns (uint) {
        return 880;
    }

}

Mi asm es de aquí -

solc --asm d8.sol > d8.asm

Entonces probé -

evm compile d8.asm

No sucede mucho (la salida es una línea en blanco).

Probé varias opciones y agregué "ejecutar" al final, pero nada produjo ningún resultado.

¿Alguien tiene alguna sugerencia?

Respuestas (2)

Solidity tiene un flujo de trabajo propio para manejar el ensamblaje. Consulte https://solidity.readthedocs.io/en/develop/assembly.html# y verifique las fases:

  1. Asamblea
  2. desazucarado
  3. Flujo de código de operación
  4. Flujo de bytes

La salida de la fase 2 se puede generar de la siguiente manera: solc --asm

Sin embargo, evm compile espera que tenga la fase 3.

por ejemplo, verifique el código: https://github.com/IC3Hydra/Hydra/blob/master/submarine_sends/to_contract/clone_withdraw.easm

Ayudaría si lo usaras evmde la manera correcta. La compileropción no es para ensamblar EVM sino para Easm, el obsoleto AST de Solidity. La información relevante es bastante limitada, y la única que encuentro es que evmlab menciona un poco. Consulte mi otra respuesta si desea más guías para el evmcomando enviado con geth.

Necesita construir una mejor respuesta, explicando cómo funcionan las cosas y abstenerse de quejarse de otros usuarios.