After cloning the repository and changing directory into the project folder:
python3 disassembler.py test
Output:
b'ERC20: transfer amount exceeds allowance'
7598 PUSH20 0x20616c6c6f77616e636500
There isn't 20 bytes of data left to iterate over so StopIteration
is reached and prints the remaining data, and I'm not sure what's wrong.
geth's disassembler produces this, and leaves the a264
metadata? then, it has a ton of invalid instructions since it didn't discard the following bytes. py-evmasm does the same.
evm disasm test
> 01d99: PUSH20 0x20616c6c6f77616e6365a2646970667358221220
Note: this is the CBOR decoding of the data that is discarded in this example, so I believe the metadata parsing is working:
{'ipfs': b'\x12 S\x1f\xd5JK$Z\xcb\x16\xb4D*\x01\xcd\xa4\x926\x15{\x84\xea\x82\x95\xdc\x00\xbc\x8d\x88\xbc\x0c\x8a\xf0', 'solc': b'\x00\x08\x04'}