Skip to content
This repository was archived by the owner on May 23, 2023. It is now read-only.

Commit a4d642e

Browse files
committed
test_contracts works
1 parent 7c084bc commit a4d642e

File tree

5 files changed

+17
-12
lines changed

5 files changed

+17
-12
lines changed

ethereum/tester.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import ethereum.db as db
77
import ethereum.opcodes as opcodes
88
import ethereum.abi as abi
9-
from ethereum.slogging import LogRecorder, configure_logging
9+
from ethereum.slogging import LogRecorder, configure_logging, set_level
1010
from ethereum.utils import to_string
1111
import rlp
1212
from rlp.utils import decode_hex, encode_hex, ascii_chr
@@ -76,7 +76,7 @@ def __init__(self, num_accounts=len(keys)):
7676
self.block = b.genesis(self.db, o)
7777
self.blocks = [self.block]
7878
self.block.timestamp = 1410973349
79-
self.block.coinbase = decode_hex(a0)
79+
self.block.coinbase = a0
8080
self.block.gas_limit = 10 ** 9
8181

8282
def __del__(self):
@@ -101,7 +101,7 @@ def __init__(self, _state, code, sender=k0,
101101
languages[language] = __import__(language)
102102
language = languages[language]
103103
evm = language.compile(code)
104-
self.address = encode_hex(me.evm(evm, sender, endowment, gas))
104+
self.address = me.evm(evm, sender, endowment, gas)
105105
assert len(me.block.get_code(self.address)), \
106106
"Contract code empty"
107107
sig = language.mk_full_signature(code)
@@ -141,7 +141,7 @@ def kall(*args, **kwargs):
141141
return _abi_contract(me, code, sender, endowment, language)
142142

143143
def evm(self, evm, sender=k0, endowment=0, gas=None):
144-
sendnonce = self.block.get_nonce(decode_hex(u.privtoaddr(sender)))
144+
sendnonce = self.block.get_nonce(u.privtoaddr(sender))
145145
tx = t.contract(sendnonce, 1, gas_limit, endowment, evm)
146146
tx.sign(sender)
147147
if gas is not None:
@@ -164,7 +164,7 @@ def _send(self, sender, to, value, evmdata='', output=None,
164164
raise Exception("Send with funid+abi is deprecated. Please use"
165165
" the abi_contract mechanism")
166166
tm, g = time.time(), self.block.gas_used
167-
sendnonce = self.block.get_nonce(decode_hex(u.privtoaddr(sender)))
167+
sendnonce = self.block.get_nonce(u.privtoaddr(sender))
168168
tx = t.Transaction(sendnonce, 1, gas_limit, to, value, evmdata)
169169
self.last_tx = tx
170170
tx.sign(sender)
@@ -254,6 +254,8 @@ def set_logging_level(lvl=1):
254254
'eth.vm.storage:trace,eth.vm.memory:trace'
255255
]
256256
configure_logging(config_string=trace_lvl_map[lvl])
257+
if lvl == 0:
258+
set_level(None, 'info')
257259
print('Set logging level: %d' % lvl)
258260

259261

ethereum/tests/test_contracts.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
import serpent
66
from rlp.utils import decode_hex, encode_hex
77
from ethereum.utils import safe_ord
8+
from ethereum.slogging import set_level
89

910
# customize VM log output to your needs
1011
# hint: use 'py.test' with the '-s' option to dump logs to the console
11-
tester.set_logging_level(2)
12+
tester.set_logging_level(0)
1213

1314

1415
# Test EVM contracts
@@ -907,7 +908,7 @@ def test_crowdfund():
907908
c.contribute(200, value=70001, sender=tester.k4)
908909
# Expect the 100001 units to be delivered to the destination
909910
# account for campaign 2
910-
assert 100001 == s.block.get_balance(decode_hex(utils.int_to_addr(48)))
911+
assert 100001 == s.block.get_balance(utils.int_to_addr(48))
911912
mida1 = s.block.get_balance(tester.a1)
912913
mida3 = s.block.get_balance(tester.a3)
913914
# Mine 5 blocks to expire the campaign
@@ -1051,6 +1052,7 @@ def sort(args:arr):
10511052

10521053
@pytest.mark.timeout(10)
10531054
def test_sort():
1055+
set_level(None, 'info')
10541056
s = tester.state()
10551057
c = s.abi_contract(sort_code)
10561058
assert c.sort([9]) == [9]
@@ -1075,6 +1077,7 @@ def test(args:arr):
10751077

10761078
@pytest.mark.timeout(10)
10771079
def test_indirect_sort():
1080+
set_level(None, 'info')
10781081
s = tester.state()
10791082
open(filename9, 'w').write(sort_code)
10801083
c = s.abi_contract(sort_tester_code)
@@ -1208,7 +1211,7 @@ def test_ecrecover():
12081211
assert bitcoin.ecdsa_raw_verify(msghash, (V, R, S), pub)
12091212

12101213
addr = utils.big_endian_to_int(utils.sha3(bitcoin.encode_pubkey(pub, 'bin')[1:])[12:])
1211-
assert int(utils.privtoaddr(priv), 16) == addr
1214+
assert utils.big_endian_to_int(utils.privtoaddr(priv)) == addr
12121215

12131216
result = c.test_ecrecover(utils.big_endian_to_int(decode_hex(msghash)), V, R, S)
12141217
assert result == addr
@@ -1310,6 +1313,7 @@ def get_prevhashes(k):
13101313

13111314
@pytest.mark.timeout(10)
13121315
def test_prevhashes():
1316+
set_level(None, 'info')
13131317
s = tester.state()
13141318
c = s.abi_contract(prevhashes_code)
13151319
s.mine(7)

ethereum/tests/test_state.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ def gen_func(filename, testname, testdata):
1919

2020
def do_test_state(filename, testname=None, testdata=None, limit=99999999):
2121
set_level(None, 'info')
22-
print logger.is_active('trace')
2322
logger.debug('running test:%r in %r' % (testname, filename))
2423
testutils.check_state_test(testutils.fixture_to_bytes(testdata))
2524

ethereum/transactions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ def sign(self, key):
7575
"""
7676
rawhash = utils.sha3(rlp.encode(self, UnsignedTransaction))
7777
self.v, self.r, self.s = ecdsa_raw_sign(rawhash, key)
78-
self.sender = decode_hex(utils.privtoaddr(key))
78+
self.sender = utils.privtoaddr(key)
7979
return self
8080

8181
@property

ethereum/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def sha3(seed):
9696
def privtoaddr(x):
9797
if len(x) > 32:
9898
x = decode_hex(x)
99-
return encode_hex(sha3(privtopub(x)[1:])[12:])
99+
return sha3(privtopub(x)[1:])[12:]
100100

101101

102102
def zpad(x, l):
@@ -115,7 +115,7 @@ def int_to_addr(x):
115115
for i in range(20):
116116
o[19 - i] = ascii_chr(x & 0xff)
117117
x >>= 8
118-
return encode_hex(b''.join(o))
118+
return b''.join(o)
119119

120120

121121
def coerce_addr_to_bin(x):

0 commit comments

Comments
 (0)