Esempio n. 1
0
def tt(count=500):
    actions = []
    for i in range(count):
        args = {
            "from": 'eosio',
            "to": 'eosio.ram',
            "quantity": '%.4f EOS' % (0.01, ),
            "memo": 'hello'
        }
        action = ['eosio.token', 'transfer', args, {'eosio': 'active'}]
        actions.append(action)

    ret, cost = eosapi.push_actions(actions)
    print(
        'total cost time:%.3f s, cost per action: %.3f ms, actions per second: %.3f'
        % (cost / 1e6, cost / count / 1000, 1 * 1e6 / (cost / count)))
Esempio n. 2
0
File: t.py Progetto: lisoleg/pyeos
def test2(count=100):
    import time
    import json
    actions = []
    for i in range(count):
        action = ['lab', 'sayhello', str(i), {'lab': 'active'}]
        actions.append(action)

    ret, cost = eosapi.push_actions(actions)
    assert ret
    print(ret['elapsed'])
    print(cost)

    print(
        'total cost time:%.3f s, cost per action: %.3f ms, actions per second: %.3f'
        % (cost / 1e6, cost / count / 1000, 1 * 1e6 / (cost / count)))
Esempio n. 3
0
def deploy(account, bin):

    actions = []
    _src_dir = os.path.dirname(__file__)
    abi_file = os.path.join(_src_dir, 'evm.abi')
    setabi = eosapi.pack_setabi(abi_file, eosapi.N(account))
    act = ['eosio', 'setabi', setabi, {account:'active'}]
    actions.append(act)

    args = eosapi.pack_args("eosio", 'setcode', {'account':account,'vmtype':2, 'vmversion':0, 'code':bin})
    act = ['eosio', 'setcode', args, {account:'active'}]
    actions.append(act)

    r, cost = eosapi.push_actions(actions)
    print(r['except'])
    print(r['elapsed'])
Esempio n. 4
0
def ca(account='aabb111'):
    actions = []
    newaccount = {
        'creator': 'eosio',
        'name': account,
        'owner': {
            'threshold': 1,
            'keys': [{
                'key': initeos.key1,
                'weight': 1
            }],
            'accounts': [],
            'waits': []
        },
        'active': {
            'threshold': 1,
            'keys': [{
                'key': initeos.key2,
                'weight': 1
            }],
            'accounts': [],
            'waits': []
        }
    }

    _newaccount = eosapi.pack_args('eosio', 'newaccount', newaccount)
    act = ['eosio', 'newaccount', {'eosio': 'active'}, _newaccount]
    actions.append(act)

    args = {'payer': 'eosio', 'receiver': account, 'bytes': 819200000}
    args = eosapi.pack_args('eosio', 'buyrambytes', args)
    act = ['eosio', 'buyrambytes', {'eosio': 'active'}, args]
    actions.append(act)

    args = {
        'from': 'eosio',
        'receiver': account,
        'stake_net_quantity': '3000.0050 EOS',
        'stake_cpu_quantity': '3000.0050 EOS',
        'transfer': 1
    }
    args = eosapi.pack_args('eosio', 'delegatebw', args)
    act = ['eosio', 'delegatebw', args, {'eosio': 'active'}]
    actions.append(act)
    rr, cost = eosapi.push_actions(actions)
    assert_ret(rr)
Esempio n. 5
0
def t2():
    contracts_path = os.path.join(os.getcwd(), '..', 'contracts')
    sys.path.append(os.getcwd())
    account = 'eosio'
    path = 'eosio.system'
    accounts = gen_names(ACCOUNT_COUNT)

    _path = os.path.join(contracts_path, path, path)
    wast = _path + '.wast'
    abi_file = _path + '.abi'

    with open(wast, 'rb') as f:
        wasm = eosapi.wast2wasm(f.read())
    code_hash = eosapi.sha256(wasm)
    with open(abi_file, 'rb') as f:
        abi = f.read()

    for account in accounts:
        _create_account(account)
        continue
        if not eosapi.get_account(account):
            _create_account(account)

    for account in accounts:
        print('+++++++++code update', account)
        actions = []
        _setcode = eosapi.pack_args('eosio', 'setcode', {
            'account': account,
            'vmtype': 0,
            'vmversion': 0,
            'code': wasm.hex()
        })
        #        _setabi = eosapi.pack_args('eosio', 'setabi', {'account':account, 'abi':abi.hex()})
        _setabi = pack_setabi(abi_file, account)

        old_hash = eosapi.get_code_hash(account)
        print(old_hash, code_hash)
        if code_hash != old_hash:
            setcode = ['eosio', 'setcode', _setcode, {account: 'active'}]
            actions.append(setcode)

        setabi = ['eosio', 'setabi', _setabi, {account: 'active'}]
        actions.append(setabi)
        rr, cost = eosapi.push_actions(actions)
        assert_ret(rr)
Esempio n. 6
0
def test2(count=100):
    actions = []
    for i in range(count):
        action = ['greeter', 'setgreeting', str(i), {'greeter':'active'}]
        actions.append(action)

    ret, cost = eosapi.push_actions(actions, True)
    assert ret
    print('total cost time:%.3f s, cost per action: %.3f ms, actions per second: %.3f'%(cost/1e6, cost/count/1000, 1*1e6/(cost/count)))
    eosapi.produce_block()

    code = eosapi.N('greeter')
    id = eosapi.hash64('greeting', 0)
    greeting = 0
    itr = db.find_i64(code, code, code, id)
    if itr >= 0:
        greeting = db.get_i64(itr)
        print(greeting[1:])
Esempio n. 7
0
def test1(count=100):
    actions = []
    for i in range(count):
        action = [
            'eosio.token', 'issue', {
                "to": "eosio",
                "quantity": "1.0000 EOS",
                "memo": str(i)
            }, {
                'eosio': 'active'
            }
        ]
        actions.append(action)

    ret, cost = eosapi.push_actions(actions)
    assert ret and not ret['except']
    print(
        'total cost time:%.3f s, cost per action: %.3f ms, actions per second: %.3f'
        % (cost / 1e6, cost / count / 1000, 1 * 1e6 / (cost / count)))
Esempio n. 8
0
def _create_account(account):
    actions = []
    newaccount = {'creator': 'eosio',
     'name': account,
     'owner': {'threshold': 1,
               'keys': [{'key': initeos.key1,
                         'weight': 1}],
               'accounts': [],
               'waits': []},
     'active': {'threshold': 1,
                'keys': [{'key': initeos.key2,
                          'weight': 1}],
                'accounts': [],
                'waits': []}}

    _newaccount = eosapi.pack_args('eosio', 'newaccount', newaccount)
    act = ['eosio', 'newaccount', _newaccount, {'eosio':'active'}]
    actions.append(act)
    '''
    args = {'payer':'eosio', 'receiver':account, 'quant':"1.0000 EOS"}
    args = eosapi.pack_args('eosio', 'buyram', args)
    act = ['eosio', 'buyram', {'eosio':'active'}, args]
    actions.append(act)
    '''
    if eosapi.get_code('eosio')[0]:
        args = {'payer':'eosio', 'receiver':account, 'bytes':64*1024}
        args = eosapi.pack_args('eosio', 'buyrambytes', args)
        act = ['eosio', 'buyrambytes', args, {'eosio':'active'}]
        actions.append(act)
    
        args = {'from': 'eosio',
         'receiver': account,
         'stake_net_quantity': '1.0050 EOS',
         'stake_cpu_quantity': '1.0050 EOS',
         'transfer': 1}
        args = eosapi.pack_args('eosio', 'delegatebw', args)
        act = ['eosio', 'delegatebw', args, {'eosio':'active'}]
        actions.append(act)

    rr, cost = eosapi.push_actions(actions)
    assert_ret(rr)
Esempio n. 9
0
File: t.py Progetto: shuke0327/pyeos
def test3(count, d=0):
    keys = list(wallet.list_keys().keys())
    for i in range(0, count):
        currency = 'curre' + n2s(i)
        #        currency = 'currency'

        key1 = keys[i]
        key2 = keys[10000 + i]

        if not eosapi.get_account(currency):
            r = eosapi.create_account('eosio', currency, key1, key2)
            assert r
        deploy_contract(currency, d)

    eosapi.produce_block()

    time.sleep(0.5)

    actions = []
    for i in range(count):
        currency = 'curre' + n2s(i)
        action = [
            currency, 'issue', {
                'currency': 'active'
            }, {
                "to": currency,
                "quantity": "1000.0000 CUD",
                "memo": ""
            }
        ]
        actions.append(action)

    ret, cost = eosapi.push_actions(actions, True)

    assert ret
    eosapi.produce_block()

    cost = ret['cost_time']
    print(
        'total cost time:%.3f s, cost per action: %.3f ms, actions per second: %.3f'
        % (cost / 1e6, cost / count / 1000, 1 * 1e6 / (cost / count)))
Esempio n. 10
0
def test2(count=500, msg='wasm'):
    import time
    import json

    code = N('counter')
    counter_id = N('counter')
    counter_begin = 0
    itr = db.find_i64(code, code, code, counter_id)
    if itr >= 0:
        counter_begin = db.get_i64(itr)
        counter_begin = int.from_bytes(counter_begin, 'little')

    print('counter begin: ', counter_begin)

    actions = []
    for i in range(count):
        action = [
            'counter', 'count', msg + ':' + str(i), {
                'counter': 'active'
            }
        ]
        actions.append(action)

    ret, cost = eosapi.push_actions(actions)
    assert ret
    print(
        'total cost time:%.3f s, cost per action: %.3f ms, actions per second: %.3f'
        % (cost / 1e6, cost / count / 1000, 1 * 1e6 / (cost / count)))

    counter_end = 0
    itr = db.find_i64(code, code, code, counter_id)
    if itr >= 0:
        counter_end = db.get_i64(itr)
        counter_end = int.from_bytes(counter_end, 'little')
    print('counter end: ', counter_end)

    itr = db.find_i64(code, code, code, N('msg'))
    if itr >= 0:
        msg = db.get_i64(itr)
    print('msg', msg)
Esempio n. 11
0
def test2(count=200):
    main_class = '<stdin>:Greeter'
    greeter = os.path.join(os.path.dirname(__file__), 'greeter.sol')
    with open(greeter, 'r') as f:
        contract_source_code = f.read()
        contract_interface = compile(contract_source_code, main_class)
#        deploy(contract_interface)
        contract_abi = contract_interface['abi']

    fn_identifier = 'getValue'

    for abi in contract_abi:
        if 'name' in abi and abi['name'] == fn_identifier:
            fn_abi = abi
            break
    args = ()
    kwargs = {}

    data = web3.utils.contracts.encode_transaction_data(
            web3,
            fn_identifier,
            contract_abi,
            fn_abi,
            args,
            kwargs)
    print(data)
    data = data[2:]
    args = {'from':'eosio', 'to':'evm', 'amount':10, 'data':data}

    actions = []
    for i in range(count):
        action = ['evm', 'transfer', args, {'eosio':'active'}]
        actions.append(action)

    ret, cost = eosapi.push_actions(actions)
    cost = ret['elapsed']
    print(ret['except'])
    assert ret and not ret['except']
    print('total cost time:%.3f s, cost per action: %.3f ms, actions per second: %.3f'%(cost/1e6, cost/count/1000, 1*1e6/(cost/count)))
Esempio n. 12
0
def _set_contract(account, wast_file, abi_file):
    with open(wast_file, 'rb') as f:
        wasm = eosapi.wast2wasm(f.read())

    code_hash = eosapi.sha256(wasm)
    with open(abi_file, 'rb') as f:
        abi = f.read()

    actions = []
    _setcode = eosapi.pack_args('eosio', 'setcode', {'account':account,'vmtype':0, 'vmversion':0, 'code':wasm.hex()})
#        _setabi = eosapi.pack_args('eosio', 'setabi', {'account':account, 'abi':abi.hex()})
    _setabi = eosapi.pack_setabi(abi_file, account)

    old_hash = eosapi.get_code_hash(account)
    print(old_hash, code_hash)
    if code_hash != old_hash:
        setcode = ['eosio', 'setcode', _setcode, {account:'active'}]
        actions.append(setcode)

    setabi = ['eosio', 'setabi', _setabi, {account:'active'}]
    actions.append(setabi)
    rr, cost = eosapi.push_actions(actions)
    assert_ret(rr)
Esempio n. 13
0
def test2(count=100):
    actions = []
    for i in range(count):
        #        action = ['eosio.token', 'issue', {'eosio':'active'}, {"to":"eosio","quantity":"0.0100 EOS","memo":""}]
        #        actions.append(action)

        #        msg = {"issuer":"eosio","maximum_supply":"10000000000.0000 EOS"}
        #        action = ['eosio.token', 'create', {'eosio.token':'active'}, msg]

        msg = {
            "from": "eosio",
            "to": "hello",
            "quantity": "0.0001 EOS",
            "memo": "m"
        }
        action = ['eosio.token', 'transfer', msg, {'eosio': 'active'}]
        actions.append(action)

    ret, cost = eosapi.push_actions(actions, True)
    assert ret
    print(
        'total cost time:%.3f s, cost per action: %.3f ms, actions per second: %.3f'
        % (cost / 1e6, cost / count / 1000, 1 * 1e6 / (cost / count)))
Esempio n. 14
0
File: t.py Progetto: shuke0327/pyeos
def test2(count, wasm=False):
    import time
    import json

    actions = []
    for i in range(count):
        action = [
            'currency', 'issue', {
                'vote': 'active'
            }, {
                "to": "currency",
                "quantity": "1000.0000 CUR",
                "memo": ""
            }
        ]
        actions.append(action)

    ret, cost = eosapi.push_actions(actions, True)
    assert ret
    eosapi.produce_block()

    print(
        'total cost time:%.3f s, cost per action: %.3f ms, actions per second: %.3f'
        % (cost / 1e6, cost / count / 1000, 1 * 1e6 / (cost / count)))