Example #1
0
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()
Example #2
0
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]

Example #3
0
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):
Example #4
0
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]
Example #5
0
    # 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')