Skip to content

Instantly share code, notes, and snippets.

@mhchia
Last active August 4, 2017 03:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mhchia/d39d7e0dbbd50c95cf65b98d5c6d597f to your computer and use it in GitHub Desktop.
Save mhchia/d39d7e0dbbd50c95cf65b98d5c6d597f to your computer and use it in GitHub Desktop.
I fail to use `RLPList` in viper in this case
from ethereum.tools import tester as t
from ethereum import utils
import rlp
code = """
def test(a1: bytes <= 1000) -> num:
tempa = RLPList(a1, [num])
return tempa[0]
"""
c = t.Chain()
x = c.contract(code, language='viper')
a = rlp.encode([10])
print(x.test(a))
@mhchia
Copy link
Author

mhchia commented Aug 3, 2017

The output is

(py3.6.0eth) kevin:test mhchia$ python test.py 
Initializing chain from provided state
Traceback (most recent call last):
  File "test.py", line 14, in <module>
    print(x.test(a))
  File "/Users/mhchia/.pyenv/versions/py3.6.0eth/lib/python3.6/site-packages/ethereum-2.0.4-py3.6.egg/ethereum/tools/tester.py", line 97, in kall
    startgas=kwargs.get('startgas', STARTGAS)
  File "/Users/mhchia/.pyenv/versions/py3.6.0eth/lib/python3.6/site-packages/ethereum-2.0.4-py3.6.egg/ethereum/tools/tester.py", line 147, in tx
    o = self.direct_tx(transaction)
  File "/Users/mhchia/.pyenv/versions/py3.6.0eth/lib/python3.6/site-packages/ethereum-2.0.4-py3.6.egg/ethereum/tools/tester.py", line 140, in direct_tx
    raise TransactionFailed()
ethereum.tools.tester.TransactionFailed

@karlfloersch
Copy link

@mhchia What is the output when you enable EVM logging?

@mhchia
Copy link
Author

mhchia commented Aug 4, 2017

DEBUG:eth.pb.tx	TX NEW txdict={'nonce': 0, 'gasprice': 1, 'startgas': 1000000000000000, 'to': '0x', 'value': 0, 'data': '0x61016556600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a052632f570a2360005114156101605760206004610140373415155857610408600435600401610160376103e860043560040135111515585761066061016060806105a0825160208401600073cb969caaad21a78a24083164ffa81604317ab603612918f1505060406105a051141558576105a0516105a00180602001516000825180602090135857809190125857601f6101000a8204811517155857606051816020036101000a830480604051901358578091901258579050905090508152506106605160005260206000f3005b5b61000461016503610004600039610004610165036000f3', 'v': 28, 'r': 97601394141219337030653081996844226876941650287186835166943729527952787629864, 's': 5603739756855790967829906630418579680749615660090334548938034445636041797593, 'sender': '0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1', 'hash': '0x8393524efcb3268fbf721d29214ce7c42db91c6eeb04feddbabf62fed8ed01d0'}
DEBUG:eth.pb.msg	CONTRACT CREATION 
DEBUG:eth.pb.msg	MSG APPLY sender=82a978b3f5962a5b0957d9ee9eef472ee55b42f1 to=c305c901078781c232a2a521c2af7980f8385ee9 gas=999999999925124 value=0 data= pre_storage={'balance': '0', 'nonce': '1', 'code': '0x', 'storage': {}} static=False depth=0
TRACE:eth.vm.op	vm op=PUSH2 stack=[] storage={'balance': '0', 'nonce': '1', 'code': '0x', 'storage': {}} gas=b'999999999925124' inst=97 pc=b'0' depth=0 address=b'\xc3\x05\xc9\x01\x07\x87\x81\xc22\xa2\xa5!\xc2\xafy\x80\xf88^\xe9' steps=0 pushvalue=357
TRACE:eth.vm.op	vm op=JUMP stack=[b'357'] gas=b'999999999925121' inst=86 pc=b'3' steps=1 depth=0
TRACE:eth.vm.op	vm op=JUMPDEST stack=[] gas=b'999999999925113' inst=91 pc=b'357' steps=2 depth=0
TRACE:eth.vm.op	vm op=PUSH2 stack=[] gas=b'999999999925112' inst=97 pc=b'358' steps=3 depth=0 pushvalue=4
TRACE:eth.vm.op	vm op=PUSH2 stack=[b'4'] gas=b'999999999925109' inst=97 pc=b'361' steps=4 depth=0 pushvalue=357
TRACE:eth.vm.op	vm op=SUB stack=[b'4', b'357'] gas=b'999999999925106' inst=3 pc=b'364' steps=5 depth=0
TRACE:eth.vm.op	vm op=PUSH2 stack=[b'353'] gas=b'999999999925103' inst=97 pc=b'365' steps=6 depth=0 pushvalue=4
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'353', b'4'] gas=b'999999999925100' inst=96 pc=b'368' steps=7 depth=0 pushvalue=0
TRACE:eth.vm.op	vm op=CODECOPY stack=[b'353', b'4', b'0'] gas=b'999999999925097' inst=57 pc=b'370' steps=8 depth=0
TRACE:eth.vm.op	vm op=PUSH2 stack=[] memory=600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a052632f570a2360005114156101605760206004610140373415155857610408600435600401610160376103e860043560040135111515585761066061016060806105a0825160208401600073cb969caaad21a78a24083164ffa81604317ab603612918f1505060406105a051141558576105a0516105a00180602001516000825180602090135857809190125857601f6101000a8204811517155857606051816020036101000a830480604051901358578091901258579050905090508152506106605160005260206000f3005b00000000000000000000000000000000000000000000000000000000000000 gas=b'999999999925022' inst=97 pc=b'371' steps=9 depth=0 pushvalue=4
TRACE:eth.vm.op	vm op=PUSH2 stack=[b'4'] gas=b'999999999925019' inst=97 pc=b'374' steps=10 depth=0 pushvalue=357
TRACE:eth.vm.op	vm op=SUB stack=[b'4', b'357'] gas=b'999999999925016' inst=3 pc=b'377' steps=11 depth=0
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'353'] gas=b'999999999925013' inst=96 pc=b'378' steps=12 depth=0 pushvalue=0
TRACE:eth.vm.op	vm op=RETURN stack=[b'353', b'0'] gas=b'999999999925010' inst=243 pc=b'380' steps=13 depth=0
TRACE:eth.vm.exit	EXIT cause=RETURN
DEBUG:eth.pb.msg	MSG APPLIED gas_remained=999999999925010 sender=82a978b3f5962a5b0957d9ee9eef472ee55b42f1 to=c305c901078781c232a2a521c2af7980f8385ee9 data=bytearray(b'`\x005`\x1cRt\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00` Ro\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff`@R\x7f\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01``Rt\x02T\x0b\xe3\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfd\xab\xf4\x1c\x00`\x80R\x7f\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfd\xab\xf4\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02T\x0b\xe4\x00`\xa0Rc/W\n#`\x00Q\x14\x15a\x01`W` `\x04a\x01@74\x15\x15XWa\x04\x08`\x045`\x04\x01a\x01`7a\x03\xe8`\x045`\x04\x015\x11\x15\x15XWa\x06`a\x01``\x80a\x05\xa0\x82Q` \x84\x01`\x00s\xcb\x96\x9c\xaa\xad!\xa7\x8a$\x081d\xff\xa8\x16\x041z\xb6\x03a)\x18\xf1PP`@a\x05\xa0Q\x14\x15XWa\x05\xa0Qa\x05\xa0\x01\x80` \x01Q`\x00\x82Q\x80` \x90\x13XW\x80\x91\x90\x12XW`\x1fa\x01\x00\n\x82\x04\x81\x15\x17\x15XW``Q\x81` \x03a\x01\x00\n\x83\x04\x80`@Q\x90\x13XW\x80\x91\x90\x12XW\x90P\x90P\x90P\x81RPa\x06`Q`\x00R` `\x00\xf3\x00[') post_storage={'balance': '0', 'nonce': '1', 'code': '0x', 'storage': {}}
DEBUG:eth.pb.msg	CONTRACT CREATION FINISHED res=1 gas=999999999925010 dat=bytearray(b'`\x005`\x1cRt\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00` Ro\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff`@R\x7f\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01``Rt\x02T\x0b\xe3\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfd\xab\xf4\x1c\x00`\x80R\x7f\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfd\xab\xf4\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02T\x0b\xe4\x00`\xa0Rc/W\n#`\x00Q\x14\x15a\x01`W` `\x04a\x01@74\x15\x15XWa\x04\x08`\x045`\x04\x01a\x01`7a\x03\xe8`\x045`\x04\x015\x11\x15\x15XWa\x06`a\x01``\x80a\x05\xa0\x82Q` \x84\x01`\x00s\xcb\x96\x9c\xaa\xad!\xa7\x8a$\x081d\xff\xa8\x16\x041z\xb6\x03a)\x18\xf1PP`@a\x05\xa0Q\x14\x15XWa\x05\xa0Qa\x05\xa0\x01\x80` \x01Q`\x00\x82Q\x80` \x90\x13XW\x80\x91\x90\x12XW`\x1fa\x01\x00\n\x82\x04\x81\x15\x17\x15XW``Q\x81` \x03a\x01\x00\n\x83\x04\x80`@Q\x90\x13XW\x80\x91\x90\x12XW\x90P\x90P\x90P\x81RPa\x06`Q`\x00R` `\x00\xf3\x00[')
DEBUG:eth.pb.msg	SETTING CODE addr=c305c901078781c232a2a521c2af7980f8385ee9 lendat=353
DEBUG:eth.pb.tx	TX APPLIED result=1 gas_remained=999999999854410 data=b'\xc3\x05\xc9\x01\x07\x87\x81\xc22\xa2\xa5!\xc2\xafy\x80\xf88^\xe9'
DEBUG:eth.pb.tx	TX SUCCESS data=b'\xc3\x05\xc9\x01\x07\x87\x81\xc22\xa2\xa5!\xc2\xafy\x80\xf88^\xe9'
DEBUG:eth.pb.tx	TX NEW txdict={'nonce': 1, 'gasprice': 1, 'startgas': 1000000000000, 'to': '0xc305c901078781c232a2a521c2af7980f8385ee9', 'value': 0, 'data': '0x2f570a2300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002c10a000000000000000000000000000000000000000000000000000000000000', 'v': 27, 'r': 114792761659802231967656337392030997137536388134984288097447395924159308260389, 's': 32809856356189972725823151816727860206231713167117122494407250627643104725378, 'sender': '0x82a978b3f5962a5b0957d9ee9eef472ee55b42f1', 'hash': '0x42e144282a4ea4ea3f4ac3385df78ad8a1c86c27abc249e465fd808e094cf8b7'}
DEBUG:eth.pb.msg	MSG APPLY sender=82a978b3f5962a5b0957d9ee9eef472ee55b42f1 to=c305c901078781c232a2a521c2af7980f8385ee9 gas=999999978088 value=0 data=2f570a2300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002c10a000000000000000000000000000000000000000000000000000000000000 pre_storage={'balance': '0', 'nonce': '1', 'code': '0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a052632f570a2360005114156101605760206004610140373415155857610408600435600401610160376103e860043560040135111515585761066061016060806105a0825160208401600073cb969caaad21a78a24083164ffa81604317ab603612918f1505060406105a051141558576105a0516105a00180602001516000825180602090135857809190125857601f6101000a8204811517155857606051816020036101000a830480604051901358578091901258579050905090508152506106605160005260206000f3005b', 'storage': {}} static=False depth=0
TRACE:eth.vm.op	vm op=PUSH1 stack=[] storage={'balance': '0', 'nonce': '1', 'code': '0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a052632f570a2360005114156101605760206004610140373415155857610408600435600401610160376103e860043560040135111515585761066061016060806105a0825160208401600073cb969caaad21a78a24083164ffa81604317ab603612918f1505060406105a051141558576105a0516105a00180602001516000825180602090135857809190125857601f6101000a8204811517155857606051816020036101000a830480604051901358578091901258579050905090508152506106605160005260206000f3005b', 'storage': {}} gas=b'999999978088' inst=96 pc=b'0' depth=0 address=b'\xc3\x05\xc9\x01\x07\x87\x81\xc22\xa2\xa5!\xc2\xafy\x80\xf88^\xe9' steps=0 pushvalue=0
TRACE:eth.vm.op	vm op=CALLDATALOAD stack=[b'0'] gas=b'999999978085' inst=53 pc=b'2' steps=1 depth=0
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'21412489539110840946130249572407580309254875434625402646261334017333855780864'] gas=b'999999978082' inst=96 pc=b'3' steps=2 depth=0 pushvalue=28
TRACE:eth.vm.op	vm op=MSTORE stack=[b'21412489539110840946130249572407580309254875434625402646261334017333855780864', b'28'] gas=b'999999978079' inst=82 pc=b'5' steps=3 depth=0
TRACE:eth.vm.op	vm op=PUSH21 stack=[] memory=000000000000000000000000000000000000000000000000000000002f570a230000000000000000000000000000000000000000000000000000000000000000 gas=b'999999978070' inst=116 pc=b'6' steps=4 depth=0 pushvalue=1461501637330902918203684832716283019655932542976
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'1461501637330902918203684832716283019655932542976'] gas=b'999999978067' inst=96 pc=b'28' steps=5 depth=0 pushvalue=32
TRACE:eth.vm.op	vm op=MSTORE stack=[b'1461501637330902918203684832716283019655932542976', b'32'] gas=b'999999978064' inst=82 pc=b'30' steps=6 depth=0
TRACE:eth.vm.op	vm op=PUSH16 stack=[] memory=000000000000000000000000000000000000000000000000000000002f570a230000000000000000000000010000000000000000000000000000000000000000 gas=b'999999978061' inst=111 pc=b'31' steps=7 depth=0 pushvalue=340282366920938463463374607431768211455
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'340282366920938463463374607431768211455'] gas=b'999999978058' inst=96 pc=b'48' steps=8 depth=0 pushvalue=64
TRACE:eth.vm.op	vm op=MSTORE stack=[b'340282366920938463463374607431768211455', b'64'] gas=b'999999978055' inst=82 pc=b'50' steps=9 depth=0
TRACE:eth.vm.op	vm op=PUSH32 stack=[] memory=000000000000000000000000000000000000000000000000000000002f570a23000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff gas=b'999999978049' inst=127 pc=b'51' steps=10 depth=0 pushvalue=115792089237316195423570985008687907852929702298719625575994209400481361428481
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'115792089237316195423570985008687907852929702298719625575994209400481361428481'] gas=b'999999978046' inst=96 pc=b'84' steps=11 depth=0 pushvalue=96
TRACE:eth.vm.op	vm op=MSTORE stack=[b'115792089237316195423570985008687907852929702298719625575994209400481361428481', b'96'] gas=b'999999978043' inst=82 pc=b'86' steps=12 depth=0
TRACE:eth.vm.op	vm op=PUSH21 stack=[] memory=000000000000000000000000000000000000000000000000000000002f570a23000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000001 gas=b'999999978037' inst=116 pc=b'87' steps=13 depth=0 pushvalue=3402823669209384634633746074317682114550000000000
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'3402823669209384634633746074317682114550000000000'] gas=b'999999978034' inst=96 pc=b'109' steps=14 depth=0 pushvalue=128
TRACE:eth.vm.op	vm op=MSTORE stack=[b'3402823669209384634633746074317682114550000000000', b'128'] gas=b'999999978031' inst=82 pc=b'111' steps=15 depth=0
TRACE:eth.vm.op	vm op=PUSH32 stack=[] memory=000000000000000000000000000000000000000000000000000000002f570a23000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000001000000000000000000000002540be3fffffffffffffffffffffffffdabf41c00 gas=b'999999978025' inst=127 pc=b'112' steps=16 depth=0 pushvalue=115792089237316195423570985005285084184060600031006817965139901893363129639936
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'115792089237316195423570985005285084184060600031006817965139901893363129639936'] gas=b'999999978022' inst=96 pc=b'145' steps=17 depth=0 pushvalue=160
TRACE:eth.vm.op	vm op=MSTORE stack=[b'115792089237316195423570985005285084184060600031006817965139901893363129639936', b'160'] gas=b'999999978019' inst=82 pc=b'147' steps=18 depth=0
TRACE:eth.vm.op	vm op=PUSH4 stack=[] memory=000000000000000000000000000000000000000000000000000000002f570a23000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000001000000000000000000000002540be3fffffffffffffffffffffffffdabf41c00fffffffffffffffffffffffdabf41c00000000000000000000000002540be400 gas=b'999999978013' inst=99 pc=b'148' steps=19 depth=0 pushvalue=794233379
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'794233379'] gas=b'999999978010' inst=96 pc=b'153' steps=20 depth=0 pushvalue=0
TRACE:eth.vm.op	vm op=MLOAD stack=[b'794233379', b'0'] gas=b'999999978007' inst=81 pc=b'155' steps=21 depth=0
TRACE:eth.vm.op	vm op=EQ stack=[b'794233379', b'794233379'] memory=000000000000000000000000000000000000000000000000000000002f570a23000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000001000000000000000000000002540be3fffffffffffffffffffffffffdabf41c00fffffffffffffffffffffffdabf41c00000000000000000000000002540be400 gas=b'999999978004' inst=20 pc=b'156' steps=22 depth=0
TRACE:eth.vm.op	vm op=ISZERO stack=[b'1'] gas=b'999999978001' inst=21 pc=b'157' steps=23 depth=0
TRACE:eth.vm.op	vm op=PUSH2 stack=[b'0'] gas=b'999999977998' inst=97 pc=b'158' steps=24 depth=0 pushvalue=352
TRACE:eth.vm.op	vm op=JUMPI stack=[b'0', b'352'] gas=b'999999977995' inst=87 pc=b'161' steps=25 depth=0
TRACE:eth.vm.op	vm op=PUSH1 stack=[] gas=b'999999977985' inst=96 pc=b'162' steps=26 depth=0 pushvalue=32
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'32'] gas=b'999999977982' inst=96 pc=b'164' steps=27 depth=0 pushvalue=4
TRACE:eth.vm.op	vm op=PUSH2 stack=[b'32', b'4'] gas=b'999999977979' inst=97 pc=b'166' steps=28 depth=0 pushvalue=320
TRACE:eth.vm.op	vm op=CALLDATACOPY stack=[b'32', b'4', b'320'] gas=b'999999977976' inst=55 pc=b'169' steps=29 depth=0
TRACE:eth.vm.op	vm op=CALLVALUE stack=[] memory=000000000000000000000000000000000000000000000000000000002f570a23000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000001000000000000000000000002540be3fffffffffffffffffffffffffdabf41c00fffffffffffffffffffffffdabf41c00000000000000000000000002540be40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020 gas=b'999999977955' inst=52 pc=b'170' steps=30 depth=0
TRACE:eth.vm.op	vm op=ISZERO stack=[b'0'] gas=b'999999977953' inst=21 pc=b'171' steps=31 depth=0
TRACE:eth.vm.op	vm op=ISZERO stack=[b'1'] gas=b'999999977950' inst=21 pc=b'172' steps=32 depth=0
TRACE:eth.vm.op	vm op=PC stack=[b'0'] gas=b'999999977947' inst=88 pc=b'173' steps=33 depth=0
TRACE:eth.vm.op	vm op=JUMPI stack=[b'0', b'173'] gas=b'999999977945' inst=87 pc=b'174' steps=34 depth=0
TRACE:eth.vm.op	vm op=PUSH2 stack=[] gas=b'999999977935' inst=97 pc=b'175' steps=35 depth=0 pushvalue=1032
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'1032'] gas=b'999999977932' inst=96 pc=b'178' steps=36 depth=0 pushvalue=4
TRACE:eth.vm.op	vm op=CALLDATALOAD stack=[b'1032', b'4'] gas=b'999999977929' inst=53 pc=b'180' steps=37 depth=0
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'1032', b'32'] gas=b'999999977926' inst=96 pc=b'181' steps=38 depth=0 pushvalue=4
TRACE:eth.vm.op	vm op=ADD stack=[b'1032', b'32', b'4'] gas=b'999999977923' inst=1 pc=b'183' steps=39 depth=0
TRACE:eth.vm.op	vm op=PUSH2 stack=[b'1032', b'36'] gas=b'999999977920' inst=97 pc=b'184' steps=40 depth=0 pushvalue=352
TRACE:eth.vm.op	vm op=CALLDATACOPY stack=[b'1032', b'36', b'352'] gas=b'999999977917' inst=55 pc=b'187' steps=41 depth=0
TRACE:eth.vm.op	vm op=PUSH2 stack=[] sha3memory=34483522688ef3f951123ec4f4dda70d892232a5e5b33c467a3b44bc30f84a6d gas=b'999999977713' inst=97 pc=b'188' steps=42 depth=0 pushvalue=1000
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'1000'] gas=b'999999977710' inst=96 pc=b'191' steps=43 depth=0 pushvalue=4
TRACE:eth.vm.op	vm op=CALLDATALOAD stack=[b'1000', b'4'] gas=b'999999977707' inst=53 pc=b'193' steps=44 depth=0
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'1000', b'32'] gas=b'999999977704' inst=96 pc=b'194' steps=45 depth=0 pushvalue=4
TRACE:eth.vm.op	vm op=ADD stack=[b'1000', b'32', b'4'] gas=b'999999977701' inst=1 pc=b'196' steps=46 depth=0
TRACE:eth.vm.op	vm op=CALLDATALOAD stack=[b'1000', b'36'] gas=b'999999977698' inst=53 pc=b'197' steps=47 depth=0
TRACE:eth.vm.op	vm op=GT stack=[b'1000', b'2'] gas=b'999999977695' inst=17 pc=b'198' steps=48 depth=0
TRACE:eth.vm.op	vm op=ISZERO stack=[b'0'] gas=b'999999977692' inst=21 pc=b'199' steps=49 depth=0
TRACE:eth.vm.op	vm op=ISZERO stack=[b'1'] gas=b'999999977689' inst=21 pc=b'200' steps=50 depth=0
TRACE:eth.vm.op	vm op=PC stack=[b'0'] gas=b'999999977686' inst=88 pc=b'201' steps=51 depth=0
TRACE:eth.vm.op	vm op=JUMPI stack=[b'0', b'201'] gas=b'999999977684' inst=87 pc=b'202' steps=52 depth=0
TRACE:eth.vm.op	vm op=PUSH2 stack=[] gas=b'999999977674' inst=97 pc=b'203' steps=53 depth=0 pushvalue=1632
TRACE:eth.vm.op	vm op=PUSH2 stack=[b'1632'] gas=b'999999977671' inst=97 pc=b'206' steps=54 depth=0 pushvalue=352
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'1632', b'352'] gas=b'999999977668' inst=96 pc=b'209' steps=55 depth=0 pushvalue=128
TRACE:eth.vm.op	vm op=PUSH2 stack=[b'1632', b'352', b'128'] gas=b'999999977665' inst=97 pc=b'211' steps=56 depth=0 pushvalue=1440
TRACE:eth.vm.op	vm op=DUP3 stack=[b'1632', b'352', b'128', b'1440'] gas=b'999999977662' inst=130 pc=b'214' steps=57 depth=0
TRACE:eth.vm.op	vm op=MLOAD stack=[b'1632', b'352', b'128', b'1440', b'352'] gas=b'999999977659' inst=81 pc=b'215' steps=58 depth=0
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'1632', b'352', b'128', b'1440', b'2'] sha3memory=34483522688ef3f951123ec4f4dda70d892232a5e5b33c467a3b44bc30f84a6d gas=b'999999977656' inst=96 pc=b'216' steps=59 depth=0 pushvalue=32
TRACE:eth.vm.op	vm op=DUP5 stack=[b'1632', b'352', b'128', b'1440', b'2', b'32'] gas=b'999999977653' inst=132 pc=b'218' steps=60 depth=0
TRACE:eth.vm.op	vm op=ADD stack=[b'1632', b'352', b'128', b'1440', b'2', b'32', b'352'] gas=b'999999977650' inst=1 pc=b'219' steps=61 depth=0
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'1632', b'352', b'128', b'1440', b'2', b'384'] gas=b'999999977647' inst=96 pc=b'220' steps=62 depth=0 pushvalue=0
TRACE:eth.vm.op	vm op=PUSH20 stack=[b'1632', b'352', b'128', b'1440', b'2', b'384', b'0'] gas=b'999999977644' inst=115 pc=b'222' steps=63 depth=0 pushvalue=1162283885851757935222737924176611884346054981123
TRACE:eth.vm.op	vm op=PUSH2 stack=[b'1632', b'352', b'128', b'1440', b'2', b'384', b'0', b'1162283885851757935222737924176611884346054981123'] gas=b'999999977641' inst=97 pc=b'243' steps=64 depth=0 pushvalue=10520
TRACE:eth.vm.op	vm op=CALL stack=[b'1632', b'352', b'128', b'1440', b'2', b'384', b'0', b'1162283885851757935222737924176611884346054981123', b'10520'] gas=b'999999977638' inst=241 pc=b'246' steps=65 depth=0
DEBUG:eth.pb.msg	MSG APPLY sender=c305c901078781c232a2a521c2af7980f8385ee9 to=cb969caaad21a78a24083164ffa81604317ab603 gas=10520 value=0 data=c10a pre_storage={'balance': '0', 'nonce': '0', 'code': '0x', 'storage': {}} static=False depth=1
TRACE:eth.vm.exit	EXIT cause=CODE OUT OF RANGE
DEBUG:eth.pb.msg	MSG APPLIED gas_remained=10520 sender=c305c901078781c232a2a521c2af7980f8385ee9 to=cb969caaad21a78a24083164ffa81604317ab603 data=[] post_storage={'balance': '0', 'nonce': '0', 'code': '0x', 'storage': {}}
TRACE:eth.vm.op	vm op=POP stack=[b'1632', b'352', b'1'] sha3memory=e3d889e5780d6f62a0764b0ee20a3ccd210b54ff6169bb47ccf7bf705db273b4 gas=b'999999976922' inst=80 pc=b'247' steps=66 depth=0
TRACE:eth.vm.op	vm op=POP stack=[b'1632', b'352'] gas=b'999999976920' inst=80 pc=b'248' steps=67 depth=0
TRACE:eth.vm.op	vm op=PUSH1 stack=[b'1632'] gas=b'999999976918' inst=96 pc=b'249' steps=68 depth=0 pushvalue=64
TRACE:eth.vm.op	vm op=PUSH2 stack=[b'1632', b'64'] gas=b'999999976915' inst=97 pc=b'251' steps=69 depth=0 pushvalue=1440
TRACE:eth.vm.op	vm op=MLOAD stack=[b'1632', b'64', b'1440'] gas=b'999999976912' inst=81 pc=b'254' steps=70 depth=0
TRACE:eth.vm.op	vm op=EQ stack=[b'1632', b'64', b'0'] sha3memory=e3d889e5780d6f62a0764b0ee20a3ccd210b54ff6169bb47ccf7bf705db273b4 gas=b'999999976909' inst=20 pc=b'255' steps=71 depth=0
TRACE:eth.vm.op	vm op=ISZERO stack=[b'1632', b'0'] gas=b'999999976906' inst=21 pc=b'256' steps=72 depth=0
TRACE:eth.vm.op	vm op=PC stack=[b'1632', b'1'] gas=b'999999976903' inst=88 pc=b'257' steps=73 depth=0
TRACE:eth.vm.op	vm op=JUMPI stack=[b'1632', b'1', b'257'] gas=b'999999976901' inst=87 pc=b'258' steps=74 depth=0
TRACE:eth.vm.exit	EXCEPTION cause=BAD JUMPDEST
DEBUG:eth.pb.msg	MSG APPLIED gas_remained=0 sender=82a978b3f5962a5b0957d9ee9eef472ee55b42f1 to=c305c901078781c232a2a521c2af7980f8385ee9 data=[] post_storage={'balance': '0', 'nonce': '1', 'code': '0x600035601c52740100000000000000000000000000000000000000006020526fffffffffffffffffffffffffffffffff6040527fffffffffffffffffffffffffffffffff000000000000000000000000000000016060527402540be3fffffffffffffffffffffffffdabf41c006080527ffffffffffffffffffffffffdabf41c00000000000000000000000002540be40060a052632f570a2360005114156101605760206004610140373415155857610408600435600401610160376103e860043560040135111515585761066061016060806105a0825160208401600073cb969caaad21a78a24083164ffa81604317ab603612918f1505060406105a051141558576105a0516105a00180602001516000825180602090135857809190125857601f6101000a8204811517155857606051816020036101000a830480604051901358578091901258579050905090508152506106605160005260206000f3005b', 'storage': {}}
DEBUG:eth.pb.msg	REVERTING 
DEBUG:eth.pb.tx	TX APPLIED result=0 gas_remained=0 data=[]
DEBUG:eth.pb.tx	TX FAILED reason=out of gas startgas=1000000000000 gas_remained=0
Initializing chain from provided state
Traceback (most recent call last):
  File "test.py", line 19, in <module>
    print(x.test(a, startgas=10**12))
  File "/home/ubuntu/.pyenv/versions/py3.6.0eth/lib/python3.6/site-packages/ethereum-2.0.4-py3.6.egg/ethereum/tools/tester.py", line 97, in kall
    startgas=kwargs.get('startgas', STARTGAS)
  File "/home/ubuntu/.pyenv/versions/py3.6.0eth/lib/python3.6/site-packages/ethereum-2.0.4-py3.6.egg/ethereum/tools/tester.py", line 147, in tx
    o = self.direct_tx(transaction)
  File "/home/ubuntu/.pyenv/versions/py3.6.0eth/lib/python3.6/site-packages/ethereum-2.0.4-py3.6.egg/ethereum/tools/tester.py", line 140, in direct_tx
    raise TransactionFailed()
ethereum.tools.tester.TransactionFailed

@vbuterin
Copy link

vbuterin commented Aug 4, 2017

The issue is because you didn't publish the RLP decoder contract to the chain. You want to publish the tx:

0xf90237808506fc23ac00830330888080b902246102128061000e60003961022056600060007f010000000000000000000000000000000000000000000000000000000000000060003504600060c082121515585760f882121561004d5760bf820336141558576001905061006e565b600181013560f783036020035260005160f6830301361415585760f6820390505b5b368112156101c2577f010000000000000000000000000000000000000000000000000000000000000081350483602086026040015260018501945060808112156100d55760018461044001526001828561046001376001820191506021840193506101bc565b60b881121561014357608081038461044001526080810360018301856104600137608181141561012e5760807f010000000000000000000000000000000000000000000000000000000000000060018401350412151558575b607f81038201915060608103840193506101bb565b60c08112156101b857600182013560b782036020035260005160388112157f010000000000000000000000000000000000000000000000000000000000000060018501350402155857808561044001528060b6838501038661046001378060b6830301830192506020810185019450506101ba565bfe5b5b5b5061006f565b601f841315155857602060208502016020810391505b6000821215156101fc578082604001510182826104400301526020820391506101d8565b808401610420528381018161044003f350505050505b6000f31b2d4f

Obviously first send a bit of ETH to the sender to pay for gas.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment