Newer py-evm versions.

This commit is contained in:
Jacques Wagener 2018-11-22 15:01:43 +02:00
parent bb46e7287e
commit 38c3b3087e
5 changed files with 29 additions and 25 deletions

View File

@ -46,9 +46,10 @@ setup(
url='https://github.com/ethereum/vyper-debug',
include_package_data=True,
install_requires=[
"py-evm==0.2.0a26",
"eth-tester==0.1.0b28",
"vyper==0.1.0b3"
"py-evm==0.2.0a33",
"eth-tester==0.1.0b33",
"vyper==0.1.0b4",
"web3==4.8.1"
],
setup_requires=['setuptools-markdown'],
python_requires='>=3.6, <4',

View File

@ -1,11 +1,11 @@
from evm.vm.forks.byzantium.computation import (
from eth.vm.forks.byzantium.computation import (
ByzantiumComputation,
)
from evm.exceptions import (
from eth.exceptions import (
Halt,
VMError
)
from vdb.vdb import VyperDebugCmd
from evm.exceptions import VMError
from vyper.exceptions import ParserException
@ -97,7 +97,7 @@ class DebugComputation(ByzantiumComputation):
pos = cls.get_pos(pc_to_execute)
msg = e.args[0]
msg = "" if len(msg) == 0 else msg
# import ipdb; ipdb.set_trace()
raise DebugVMError(
message=msg,
item=pos,

View File

@ -1,17 +1,20 @@
from evm.vm.forks.byzantium import ByzantiumVM
from evm.vm.forks.byzantium.state import ByzantiumState
from eth.chains.base import MiningChain
from eth.db import get_db_backend
from eth.vm.forks.byzantium import ByzantiumVM
from eth.vm.forks.byzantium.state import ByzantiumState
from vdb.debug_computation import DebugComputation
from eth_tester.backends.pyevm.main import (
get_default_genesis_params,
generate_genesis_state,
generate_genesis_state_for_keys,
get_default_genesis_params,
get_default_account_keys,
PyEVMBackend
)
class DebugState(ByzantiumState):
computation_class = DebugComputation
@ -20,22 +23,21 @@ class DebugVM(ByzantiumVM):
_state_class = DebugState # type: Type[BaseState]
def _setup_tester_chain():
from evm.chains.tester import MainnetTesterChain
from evm.db import get_db_backend
def _setup_tester_chain(genesis_params, genesis_state, num_accounts):
class DebugNoProofVM(DebugVM):
"""Byzantium VM rules, without validating any miner proof of work"""
@classmethod
def validate_seal(self, header):
pass
class MainnetTesterNoProofChain(MainnetTesterChain):
class MainnetTesterNoProofChain(MiningChain):
vm_configuration = ((0, DebugNoProofVM), )
genesis_params = get_default_genesis_params()
account_keys = get_default_account_keys()
genesis_state = generate_genesis_state(account_keys)
account_keys = get_default_account_keys(quantity=num_accounts)
genesis_state = generate_genesis_state_for_keys(account_keys)
base_db = get_db_backend()
@ -48,8 +50,9 @@ class PyEVMDebugBackend(PyEVMBackend):
def __init__(self, ):
super().__init__()
def reset_to_genesis(self):
self.account_keys, self.chain = _setup_tester_chain()
def reset_to_genesis(self, genesis_params=None, genesis_state=None, num_accounts=None):
self.account_keys, self.chain = _setup_tester_chain(genesis_params, genesis_state,
num_accounts)
def set_debug_info(source_code, source_map, stdin=None, stdout=None):

View File

@ -1,7 +1,7 @@
from eth_hash.auto import keccak
from eth_utils import to_hex
from eth_abi import decode_single
from evm.utils.numeric import (
from eth.utils.numeric import (
big_endian_to_int,
int_to_big_endian,
)

View File

@ -6,9 +6,9 @@ from eth_utils import (
to_int,
)
import evm
from evm import constants
from evm.vm.opcode import as_opcode
import eth.vm
from eth import constants
from eth.vm.opcode import as_opcode
from vyper.opcodes import opcodes as vyper_opcodes
from vdb.variables import (
parse_global,
@ -215,7 +215,7 @@ class VyperDebugCmd(cmd.Cmd):
return True
original_opcodes = evm.vm.forks.byzantium.computation.ByzantiumComputation.opcodes
original_opcodes = eth.vm.forks.byzantium.computation.ByzantiumComputation.opcodes
def set_evm_opcode_debugger(source_code=None, source_map=None, stdin=None, stdout=None):
@ -238,7 +238,7 @@ def set_evm_opcode_debugger(source_code=None, source_map=None, stdin=None, stdou
gas_cost=0
)
setattr(evm.vm.forks.byzantium.computation.ByzantiumComputation, 'opcodes', opcodes)
setattr(eth.vm.forks.byzantium.computation.ByzantiumComputation, 'opcodes', opcodes)
def set_evm_opcode_pass():
@ -252,4 +252,4 @@ def set_evm_opcode_pass():
mnemonic="DEBUG",
gas_cost=0
)
setattr(evm.vm.forks.byzantium.computation.ByzantiumComputation, 'opcodes', opcodes)
setattr(eth.vm.forks.byzantium.computation.ByzantiumComputation, 'opcodes', opcodes)