Пример #1
0
    def load(self):
        sizeweights = 0
        sizebiases = 0

        keys = struct.pack('Q', N('sizeweights'))
        values = bytes(8)
        if eoslib.load(mnist, mnist, table_network, keys, 0, 0, values) > 0:
            sizeweights = int.from_bytes(values, 'little')

        if sizeweights <= 0:
            return False

        keys = struct.pack('Q', N('sizebiases'))
        values = bytes(8)
        if eoslib.load(mnist, mnist, table_network, keys, 0, 0, values) > 0:
            sizebiases = int.from_bytes(values, 'little')

        if sizebiases <= 0:
            return False

        print("+++++++++++++++++", sizeweights, sizebiases)

        keys = struct.pack('Q', N('weights'))
        values = bytes(sizeweights)
        if eoslib.load(mnist, mnist, table_network, keys, 0, 0, values) <= 0:
            return False
        self.weights = pickle.loads(values)

        keys = struct.pack('Q', N('biases'))
        values = bytes(sizebiases)
        if eoslib.load(mnist, mnist, table_network, keys, 0, 0, values) <= 0:
            return False
        self.biases = pickle.loads(values)
        print('load success!')
        return True
Пример #2
0
def test_ts():
    import wallet
    from eostypes import PySignedTransaction, PyMessage
    import time
    print('hello')
    ts = PySignedTransaction()
    ts.reqire_scope(b'test')
    ts.reqire_scope(b'currency')

    data = struct.pack("QQQ", N(b'currency'), N(b'test'), 50)

    for i in range(10):
        msg = PyMessage()
        msg.init(b'currency', b'transfer', [[b'currency', b'active']], data)
        ts.add_message(msg)

#    print('+++++++++++++:',ts.get_messages())

#    ret = wallet.sign_transaction(ts)
#    print('sign ts return',ret)

#    r = eosapi.get_table('test','currency','account')
#    print(r)

    start = time.time()
    eosapi.push_transaction2(ts, True)
    print('cost:', time.time() - start)

    start = time.time()
    with producer:
        pass
    print('cost:', time.time() - start)
Пример #3
0
def test_performance():
    import wallet
    import struct
    from eoslib import N
    from eostypes import PySignedTransaction, PyMessage
    import time
    
    ts = PySignedTransaction()
    ts.reqire_scope(b'test')
    ts.reqire_scope(b'currency')

    data = struct.pack("QQQ", N(b'currency'), N(b'test'), 1)

    for i in range(900):
        msg = PyMessage()
        msg.init(b'currency', b'transfer', [[b'currency',b'active']], data)
        ts.add_message(msg)

    print('++++ push_transaction2')
    start = time.time()
    eosapi.push_transaction2(ts, True)
    print('cost:',time.time() - start)

    print('++++ produce_block')
    start = time.time()
    with producer:
        pass
    print('cost:',time.time() - start)
Пример #4
0
def test2():
    with producer:
        if not eosapi.get_account('currency'):
            r = eosapi.create_account('inita', 'currency', key1, key2)
            assert r
        if not eosapi.get_account('test'):
            if not eosapi.get_account('test'):
                r = eosapi.create_account('inita', 'test', key1, key2)
                assert r
        r = eosapi.set_contract('currency',
                                '../../contracts/currency/currency.py',
                                '../../contracts/currency/currency.abi', 1)

    start = time.time()
    ts = PySignedTransaction()
    ts.reqire_scope(b'test')
    ts.reqire_scope(b'currency')

    for i in range(1):
        data = struct.pack("QQQ", N(b'currency'), N(b'test'), 1)
        msg = PyMessage()
        msg.init(b'currency', b'transfer', [[b'currency', b'active']], data)
        ts.add_message(msg)

    ctl = chain_controller()
    ctl.process_transaction(ts)
    r = eosapi.get_table(b'test', b'currency', b'account')
    print(r)
    print('cost:', time.time() - start)
Пример #5
0
def apply(receiver, code, action):
    #    print('++++++apply:', n2s(name))
    if action == N('transfer'):
        transfer_()
    elif action == N('issue'):
        issue_()
    elif action == N('create'):
        create_()
Пример #6
0
def apply(name, type):
    return
    #    print('++++++apply:', n2s(name))
    if type == N('transfer'):
        transfer_()
    elif type == N('issue'):
        issue_()
    elif type == N('create'):
        create_()
Пример #7
0
def apply(receiver, code, action):
    if action == N('setgreeting'):
        greeter = Greeter()
        #        print('original greeting:',greeter.greeting)
        value = read_action()
        greeter.greeting = value.decode('utf8')
    elif action == N('greeting'):
        greeter = Greeter()
        print(greeter.greeting)
Пример #8
0
def apply(receiver, account, act):
    if act == N('create'):
        msg = eoslib.read_action()
        _create(msg)
    elif act == N('issue'):
        msg = eoslib.read_action()
        _issue(msg)
    elif act == N('transfer'):
        msg = eoslib.read_action()
        _transfer(msg)
Пример #9
0
def test_util():
    import util
    from eoslib import N
    keys = struct.pack('Q', N('currency'))
    values = bytes(16)
    eos = N('eos')
    ret = util.load(eos, eos, N('test'), keys, 0, 0, values)
    print('+++++++eoslib.load return:', ret)
    print(values)
    results = struct.unpack('QQ', values)
    print(results)
Пример #10
0
def apply(receiver, code, action):
    if action == N('sayhello'):
        sayHello()
    elif action == N('deploy'):
        src_code = read_action()
        print(src_code)
        eoslib.set_code_ext(receiver, 1, N('lib'), src_code)
    elif action == N('deploytest'):
        print('import lib test...')
        import lib
        print('lib', lib)
        lib.sayHello()
Пример #11
0
def test_message():
# '{"from":"currency","to":"test","amount":50}'
    data = struct.pack("QQQ", N(b'test'), N(b'inita'), 50)
    msghandle = eoslib.messageCreate(b'currency', b'transfer', data)
    eoslib.messageRequirePermission(msghandle, b'test', b'active')
    eoslib.messageSend(msghandle)

#{"from":"test", "to":"inita", "amount":50, "memo":"hello"}
    data = struct.pack("QQQ", N(b'test'), N(b'inita'), 50)
    data += eoslib.pack(b'hello')
    msghandle = eoslib.messageCreate(b'eos', b'transfer', data)
    eoslib.messageRequirePermission(msghandle, b'test', b'active')
    eoslib.messageSend(msghandle)
Пример #12
0
def apply(code, action):
#    print(eoslib.n2s(code),eoslib.n2s(action))
    if code == test:
        eoslib.requireAuth(test)
        if action == N(b'transfer'):
            msg = eoslib.readMessage()
            result = struct.unpack('QQQ', msg)
            print(result)
            from_ = result[0]
            to_ = result[1]
            amount = result[2]
        elif action == N(b'test'):
            test_rw_db()
        elif action == N(b'testdb'):
            test_db()
        elif action == N(b'callwasm'):
        		test_call_wasm_function()
        elif action == N(b'testmsg'):
            print('testmsg')
            test_message()
        elif action == N(b'testts'):
            test_transaction()
        elif action == N(b'testmem'):
            test_memory_limit()
        elif action == N(b'testtimeout'):
            test_time_out()
Пример #13
0
def sayHello():
    n = N('hello')
    id = N('name')

    name = read_action()
    print('hello', name)
    code = n
    scope = n
    table = n
    payer = n
    itr = db.find_i64(code, scope, table, id)
    if itr >= 0: # value exist, update it
        old_name = db.get_i64(itr)
        print('hello,', old_name)
        db.update_i64(itr, payer, name)
    else:
        db.store_i64(scope, table, payer, id, name)
Пример #14
0
    def save(self):
        biases = pickle.dumps(self.biases)
        weights = pickle.dumps(self.weights)

        keys = struct.pack('Q', N('sizeweights'))
        values = struct.pack('Q', len(weights))
        eoslib.store(mnist, mnist, table_network, keys, 0, values)

        keys = struct.pack('Q', N('sizebiases'))
        values = struct.pack('Q', len(biases))
        eoslib.store(mnist, mnist, table_network, keys, 0, values)

        keys = struct.pack('Q', N('weights'))
        eoslib.store(mnist, mnist, table_network, keys, 0, weights)

        keys = struct.pack('Q', N('biases'))
        eoslib.store(mnist, mnist, table_network, keys, 0, biases)
Пример #15
0
def apply(receiver, code, action):
    if action == N('sayhello'):
        from hello import sayhello
        sayhello.sayHello('mike')
    elif action == N('setcode'):
        data = read_action()
        #        print(struct.unapck)
        code_account, code_name, code_type = struct.unpack('QQB', data[:17])
        src_code = eoslib.unpack_bytes(data[17:])
        eoslib.set_code_ext(code_account, 1, code_name, src_code)
    elif action == N('auth'):
        data = read_action()
        code_owner, code_name, auth_to = struct.unpack('QQQ', data)
        code = N('eosio.code')
        scope = code
        itr = db.find_i64(code, code_owner, auth_to, code_name)
        print(itr)
        if itr >= 0:
            return
        payer = code_owner
        db.store_i64(code_owner, auth_to, payer, code_name, b'1')
    elif action == N('unauth'):
        data = read_action()
        code_owner, code_name, auth_to = struct.unpack('QQQ', data)
        code = N('eosio.code')
        scope = code
        itr = db.find_i64(code, code_owner, auth_to, code_name)
        if itr >= 0:
            db.remove_i64(itr)
    elif action == N('import'):
        from eosio.code import hello
Пример #16
0
    def __init__(self, owner, symbol):
        self.owner = owner
        self.a = Asset(0, symbol)
        self.symbol_name = to_symbol_name(symbol)

        table_id = N('accounts')
        multi_index.__init__(self, _code, self.owner, table_id)

        self.load()
Пример #17
0
    def __init__(self, symbol):
        table_id = N('stat')
        self.primary_key = scope = to_symbol_name(symbol)
        multi_index.__init__(self, _code, scope, table_id)

        self.supply = Asset(0, symbol)
        self.max_supply = Asset(0, symbol)
        self.issuer = 0

        self.load()
Пример #18
0
def test_load_str():
    code = N(b'test')
    table = N(b'test')

    ret = eoslib.remove_str(code, table, b'abc')
    print(ret)

    ret = eoslib.remove_str(code, table, b'abc')
    print(ret)

    test = eoslib.N(b'test')
    ret = eoslib.load_str(code, code, table, b'abc')
    print(ret)

    ret = eoslib.store_str(code, table, b'abc', b'def')
    print(ret)

    ret = eoslib.load_str(code, code, table, b'abc')
    print(ret)
Пример #19
0
def apply(receiver, code, action):
    print('+++++action:', n2s(action))
    if not action == N('sayhello'):
        return

    if 1:
        test_crash2()
        #    test_base_exception()
        test_base_exception2()
        test_memory_out()
        test_memory_out2()

    if 1:
        test_crash1()
        #    test_crash2()
        test_recursive_call()

        test_delete1()
        test_delete2()
        test_delete3()
    if 1:
        test_reload()
        test_context_manager()

#----------------------------

    test_getattr()
    test_setattr()

    #    test_code_object()
    test_code_object2()

    test_builtin_types()
    test_builtins()
    #--------------------------

    test_call_with_key_words()

    test_change_builtin_module()
    test_change_builtin_module2()
    test_change_builtin_module3()
    test_change_builtin_module4()

    test_set_func()

    test_import()
    test_import2()
    test_str_format()
    test_open()
    test_yield()
    test_large_pow()
    test_large_pack()
    test_large_pack2()
Пример #20
0
def apply(receiver, code, action):

    if action == N('sayhello'):
        eoslib.require_auth(N('call'))
        msg = eoslib.read_action()
        print(msg.decode('utf8'))
    elif action == N('call'):
        msg = eoslib.read_action()
        _from, to, amount = struct.unpack('QQQ', msg)
        symbol = bytearray(8)
        symbol[0] = 4
        symbol[1] = ord('E')
        symbol[2] = ord('O')
        symbol[3] = ord('S')
        memo = eoslib.pack_bytes(b'hello')
        args = struct.pack('QQQ8s%ds' % (len(memo), ), _from, to, amount,
                           symbol, memo)

        print('++++call')
        eoslib.send_inline(N('eosio.token'), N('transfer'), args,
                           {'call': 'active'})
Пример #21
0
def test_transaction():
    print("------------------test_transaction---------------")
    #transaction will apply in the next block
    tshandle = eoslib.transactionCreate()
    eoslib.transactionRequireScope(tshandle, b'test', 0)
    eoslib.transactionRequireScope(tshandle, b'inita', 0)

# '{"from":"test","to":"inita","amount":50}'
    data = struct.pack("QQQ", N(b'test'), N(b'inita'), 50)
    msghandle = eoslib.messageCreate(b'currency', b'transfer', data)
    eoslib.messageRequirePermission(msghandle, b'test', b'active')
    eoslib.transactionAddMessage(tshandle, msghandle)

#{"from":"test", "to":"inita", "amount":50, "memo":"hello"}
    data = struct.pack("QQQ", N(b'test'), N(b'inita'), 50)
    data += eoslib.pack(b'hello')
    msghandle = eoslib.messageCreate(b'eos', b'transfer', data)
    eoslib.messageRequirePermission(msghandle, b'test', b'active')
    eoslib.transactionAddMessage(tshandle, msghandle)

    eoslib.transactionSend(tshandle)
    print('-------end-------------')
Пример #22
0
def test():
    net = Network([784, 30, 10])
    biases = pickle.dumps(net.biases)
    weights = pickle.dumps(net.weights)
    print(len(weights))
    keys = struct.pack('Q', N('sizeweights'))
    values = struct.pack('Q', len(weights))
    ret = eoslib.store(mnist, mnist, table_network, keys, 0, values)
    print('store return:', ret)

    keys = struct.pack('Q', N('sizeweights'))
    values = bytes(8)
    eoslib.load(mnist, mnist, table_network, keys, 0, 0, values)
    print('load return:', int.from_bytes(values, 'little'))

    keys = struct.pack('Q', N('weights'))
    ret = eoslib.store(mnist, mnist, table_network, keys, 0, weights)
    print('store return:', ret)

    keys = struct.pack('Q', N('weights'))
    values = bytes(len(weights))
    ret = eoslib.load(mnist, mnist, table_network, keys, 0, 0, values)
    print('load return:', ret)
Пример #23
0
def test_db2():
    msg = eoslib.readMessage()
    print(len(msg))
    test = N(b'eos')
    result = int.from_bytes(msg[:8], 'little')
    size = msg[8]
    for i in range(size):
        result = int.from_bytes(msg[9 + i * 8:9 + i * 8 + 8], 'little')
        print(result)
    keys = msg[:8]
    values = msg[8:]
    eoslib.store(test, test, test, keys, 0, values)
    keys = msg[:8]
    values = msg[8:]
    eoslib.load(test, test, test, keys, 0, 0, values)
    print(values)
Пример #24
0
def apply(code, action):
    if code == exchange:
        if action == N(b'buy'):
            apply_exchange_buy()
        elif action == N(b'sell'):
            apply_exchange_sell()
        elif action == N(b'cancelbuy'):
            apply_exchange_cancel_buy()
        elif action == N(b'cancelsell'):
            apply_exchange_cancel_sell()
        elif action == N(b'dotest'):
            dotest()
        else:
            assert False, "unknown action"
    elif code == currency:
        if action == N(b'transfer'):
            apply_currency_transfer()
    elif code == N(b'eos'):
        if action == N(b'transfer'):
            apply_eos_transfer()
Пример #25
0
def test_rw_db():
    keys = struct.pack('Q', N('currency'))
    values = bytes(16)
    eos = N('eos')
    ret = eoslib.load(eos, eos, N('test'), keys, 0, 0, values)
    print('+++++++eoslib.load return:',ret)
    print(values)
    results = struct.unpack('QQ', values)
    print(results)

    print('--------------------------------')
    keys = struct.pack('Q', N('currency'))
    values = struct.pack('QQ', 77, 88)
    ret = eoslib.store(test, eos, N('test'), keys, 0, values)
    print('++++++++eoslib.store return:',ret)

    values = bytes(16)
    ret = eoslib.load(test, eos, N('test'), keys, 0, 0, values)
    print('+++++++eoslib.load return:',ret)
    print(values)
    results = struct.unpack('QQ', values)
    print(results)

    print('--------------------------------')

    keys = struct.pack('Q', N('currency'))
    values = struct.pack('QQ', 44, 33)
    ret = eoslib.store(test, test, N('test'), keys, 0, values)
    print('++++++++eoslib.store return:',ret)

    values = bytes(16)
    ret = eoslib.load(test, test, N('test'), keys, 0, 0, values)
    print('+++++++eoslib.load return:',ret)
    print(values)
    results = struct.unpack('QQ', values)
    print(results)
Пример #26
0
def test_rw_db():

    a = Account('test')
    print('+++++++++balance:', a.balance)
    a.balance += 100
    a.store()

    a = Account('test')
    print('+++++++++balance:', a.balance)

    db_keys = struct.pack('Q', N('currency'))
    values = bytes(16)
    eos = N('eos')
    ret = eoslib.load(eos, eos, N('test'), db_keys, 0, 0, values)
    print('+++++++eoslib.load return:', ret)
    print(values)
    results = struct.unpack('QQ', values)
    print(results)

    print('--------------------------------')
    values = struct.pack('QQ', 0x778899, 0x112233)
    ret = eoslib.store(test, N('test'), db_keys, 0, values)
    print('++++++++eoslib.store return:', ret)

    values = bytes(16)
    ret = eoslib.load(test, eos, N('test'), db_keys, 0, 0, values)
    print('+++++++eoslib.load return:', ret)
    print(values)
    results = struct.unpack('QQ', values)
    print(results)

    print('--------------------------------')

    values = struct.pack('QQ', 44, 33)
    ret = eoslib.store(test, N('test'), db_keys, 0, values)
    print('++++++++eoslib.store return:', ret)

    values = bytes(16)
    ret = eoslib.load(test, test, N('test'), db_keys, 0, 0, values)
    print('+++++++eoslib.load return:', ret)
    print(values)
    results = struct.unpack('QQ', values)
    print(results)
Пример #27
0
    from exchange import *
    import eoslib as eoslib
    from eoslib import N, readMessage, writeMessage

    init()
    writeMessage(bytes(512))
    order = BuyOrder()
    order.buyer = OrderID()
    order.buyer.name = eoslib.N(b'buyer')
    order.buyer.id = 0

    order.price = uint128(11)
    order.quantity = 12
    order.expiration = int(time.time()) + 100
    writeMessage(order())
    apply(exchange, N(b'buy'))

    order = SellOrder()
    order.seller = OrderID()
    order.seller.name = eoslib.N(b'seller')
    order.seller.id = 0

    order.price = uint128(11)
    order.quantity = 12
    order.expiration = int(time.time()) + 100
    writeMessage(order())

    apply(exchange, N(b'sell'))

    id = OrderID()
    id.name = eoslib.N(b'buyer')
Пример #28
0
import eoslib

from eoslib import N, readMessage, requireAuth, now
import struct
import logging
print = logging.info

exchange = N(b'exchange')
currency = N(b'currency')
table_account = N(b'account')
table_asks = N(b'asks')
table_bids = N(b'bids')

Name = eoslib.n2s


def min(a, b):
    if a > b:
        return uint64(b)
    return uint64(a)


class uint64(int):
    def __new__(cls, value):
        if isinstance(value, bytes):
            return int.__new__(cls, int.from_bytes(value, 'little'))
        return int.__new__(cls, value)

    def __div__(self, other):
        return int(int.__div__(self, other))
Пример #29
0
from eoslib import read_action, N, n2s, unpack
from backyard.token import create, issue, transfer

try:
    import ustruct as struct
except Exception as e:
    import struct

code = N(b'currency')
table = N(b'account')


#{"to":"currency","quantity":"1000.0000 CUR","memo":""}
def issue_():
    iss = issue()


#    iss.p()


#{"from":"currency","to":"eosio","quantity":"20.0000 CUR","memo":"my first transfer"}
def transfer_():
    t = transfer()


#    t.p()


def create_():
    c = create()
Пример #30
0
def test_call_wasm_function():
    eoslib.call_wasm_function(N('test2'), N(b'hello'), [1,2])