def main(): args = parser.parse_args() print(web3_clientVersion()) evm_reset() set_logging_level(2) print("\nAvailable Accounts\n==================") for account in accounts: print('0x%s' % account.encode("hex")) print("\nListening on %s:%s" % (args.domain, args.port)) server = make_server(args.domain, args.port, application) thread = threading.Thread(target=server.serve_forever) thread.daemon = True thread.start() yield server server.shutdown() server.server_close()
import bitcoin import os import pytest from ethereum import tester, utils, abi import serpent from rlp.utils import decode_hex, encode_hex from ethereum.utils import safe_ord from ethereum.slogging import set_level # customize VM log output to your needs # hint: use 'py.test' with the '-s' option to dump logs to the console tester.set_logging_level(0) # Test EVM contracts serpent_code = ''' def main(a,b): return(a ^ b) ''' def test_evm(): evm_code = serpent.compile(serpent_code) translator = abi.ContractTranslator( serpent.mk_full_signature(serpent_code)) data = translator.encode('main', [2, 5]) s = tester.state() c = s.evm(evm_code) o = translator.decode('main', s.send(tester.k0, c, 0, data)) assert o == [32]
G = [b.Gx, b.Gy, 1] Z = [0, 0, 1] def neg_point(p): return [p[0], b.P - p[1], p[2]] s = t.state() s.block.gas_limit = 100000000 t.gas_limit = 3000000 tests = sys.argv[1:] if '--log' in tests: t.set_logging_level(int((tests + [1])[tests.index('--log') + 1])) if '--modexp' in tests or not len(tests): c = s.abi_contract('jacobian_arith.se') print "Starting modexp tests" for i in range(0, len(vals) - 2, 3): o1 = substitutes.modexp_substitute(vals[i], vals[i + 1], vals[i + 2]) o2 = c.exp(vals[i], vals[i + 1], vals[i + 2], profiling=1) print "gas", o2["gas"], "time", o2["time"] assert o1 == o2["output"], (o1, o2) if '--double' in tests or not len(tests): print "Starting doubling tests" c = s.abi_contract('jacobian_arith.se') for i in range(5):
import bitcoin import os import pytest from ethereum import tester, utils, abi import serpent from rlp.utils import decode_hex, encode_hex from ethereum.utils import safe_ord from ethereum.slogging import set_level # customize VM log output to your needs # hint: use 'py.test' with the '-s' option to dump logs to the console tester.set_logging_level(0) # Test EVM contracts serpent_code = ''' def main(a,b): return(a ^ b) ''' def test_evm(): evm_code = serpent.compile(serpent_code) translator = abi.ContractTranslator(serpent.mk_full_signature( serpent_code)) data = translator.encode('main', [2, 5]) s = tester.state() c = s.evm(evm_code) o = translator.decode('main', s.send(tester.k0, c, 0, data)) assert o == [32]
# print str(len(evm.blocks)) # Remove all blocks after our saved block number. del evm.blocks[snapshot.block_number + 1:len(evm.blocks)] # Revert the evm evm.revert(snapshot.data) # Remove all snapshots after and including this one. del snapshots[index:len(snapshots)] return True # init state evm_reset() t.set_logging_level(2) #slogging.configure(':info,eth.pb:debug,eth.vm.exit:trace') #slogging.configure(':info,eth.vm.exit:debug,eth.pb.tx:info') print "Ready!" def isContract(transaction): if "to" not in transaction and "data" in transaction: return True else: return False def int_to_hex(int_value): encoded = format(int_value, 'x')