def test_transfer_confirm(self): account = Account(address="b50c2404e699fd985f71b2c3f032059f13d6543b") print(account) balance1 = account.get_balance() print("Account1 balance", balance1) with pytest.raises(RuntimeError): account.transfer("to_addr", 1) account2 = Account.from_keystore("zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) print(account2) balance = account2.get_balance() print("Account2 balance", balance) assert balance > 0 result = account2.transfer(account.checksum_address, Zil(10.3), confirm=True, timeout=300, sleep=20) print("Transfer Result", result) pprint(account2.last_params) pprint(account2.last_txn_info) pprint(account2.last_txn_details) balance2 = account.get_balance() print("Account1 balance", balance2) assert balance2 >= balance1 + 10.299 account = Account(private_key="d0b47febbef2bd0c4a4ee04aa20b60d61eb02635e8df5e7fd62409a2b1f5ddf8") result = account.transfer(account2.bech32_address, 10.3, confirm=True, timeout=600, sleep=20) print("Transfer Result", result) pprint(account2.last_params) pprint(account2.last_txn_info) pprint(account2.last_txn_details)
def test_transfer(self): chain.set_active_chain(chain.TestNet) account = Account(address="b50c2404e699fd985f71b2c3f032059f13d6543b") print(account) balance1 = account.get_balance() print("Account1 balance", balance1) with pytest.raises(RuntimeError): account.transfer("to_addr", 1) account2 = Account.from_keystore("zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) print(account2) balance = account2.get_balance() print("Account2 balance", balance) assert balance > 0 to_addr = account.address with pytest.raises(ValueError): account2.transfer(to_addr, 50000) txn_info = account2.transfer(to_addr, Zil(10.3)) pprint(txn_info) txn_details = account2.wait_txn_confirm(txn_info["TranID"], timeout=120) pprint(txn_details) assert txn_details balance2 = account.get_balance() print("Account1 balance", balance2) assert balance2 >= balance1 + 10.3
def test_transfer(self): chain.set_active_chain(chain.TestNet) account = Account(address="b50c2404e699fd985f71b2c3f032059f13d6543b") print(account) balance1 = account.get_balance() print("Account1 balance", balance1) with pytest.raises(RuntimeError): account.transfer("to_addr", 1) account2 = Account.from_keystore( "zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) print(account2) balance = account2.get_balance() print("Account2 balance", balance) assert balance > 0 # check address format with pytest.raises(ValueError): account2.transfer(account.address, Zil(10.3)) with pytest.raises(ValueError): account2.transfer(account.address0x, Zil(10.3)) # checksum address # check insufficient balance with pytest.raises(ValueError): account2.transfer(account.checksum_address, 50000) txn_info = account2.transfer(account.checksum_address, Zil(10.3)) pprint(txn_info) txn_details = account2.wait_txn_confirm(txn_info["TranID"], timeout=240) pprint(txn_details) assert txn_details balance2 = account.get_balance() print("Account1 balance", balance2) assert balance2 >= balance1 + 10.299 account = Account( private_key= "d0b47febbef2bd0c4a4ee04aa20b60d61eb02635e8df5e7fd62409a2b1f5ddf8") # bech32 address txn_info = account.transfer(account2.bech32_address, 10.3, confirm=True) pprint(txn_info)
def _test_transfer_qa(self): chain.set_active_chain(chain.TestNet) account = Account(address="b50c2404e699fd985f71b2c3f032059f13d6543b") print(account) print("Account1 balance", repr(account.get_balance())) account2 = Account.from_keystore( "zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) print(account2) balance = account2.get_balance() print("Account2 balance", repr(balance)) assert balance > 0 txn_info = account2.transfer(account.bech32_address, Qa(123456789)) pprint(txn_info) txn_details = account2.wait_txn_confirm(txn_info["TranID"], timeout=240) pprint(txn_details) assert txn_details print("Account1 balance", repr(account.get_balance())) print("Account1 balance", repr(account.get_balance_qa())) account = Account( private_key= "d0b47febbef2bd0c4a4ee04aa20b60d61eb02635e8df5e7fd62409a2b1f5ddf8") txn_info = account.transfer(account2.checksum_address, Qa(123456789), confirm=True) pprint(txn_info)
def iat_create_txns(src_acc, dest_accs, zils): # Clear any cached sessions. This is needed to ensure multiple processes # don't try to reuse the same TCP connection, which would lead to havoc LocalNet = chain.BlockChain(API_ENDPOINT, version=1, network_id=0) chain.set_active_chain(LocalNet) src_acc = Account(private_key=src_acc.private_key) txn_info_list = [] src_addr = src_acc.bech32_address orig_nonce = nonces.get(src_addr, src_acc.get_nonce()) for dest_acc in dest_accs: try: dest = dest_acc.bech32_address txn_info = src_acc.transfer(to_addr=dest, zils=zils, nonce=new_nonce(src_acc), gas_price=100) txn_info_list.append(txn_info) print(json.dumps(src_acc.last_params), file=sys.stderr) print("Created {} transactions".format(len(txn_info_list))) except Exception as e: print("Could not send from {} to {}: {}".format(src_addr, dest, e)) nonce_now = nonces.get(src_addr, src_acc.get_nonce()) # print("{}: created {} transactions; nonce went from {} to {}".format(src_acc.bech32_address, len(txn_info_list), orig_nonce, nonce_now)) return txn_info_list, src_acc, nonce_now
def test_batch_transfer(self): account = Account.from_keystore("zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) print(account) balance = account.get_balance() print("Account balance", balance) assert balance > 0 to_account = Account(address="b50c2404e699fd985f71b2c3f032059f13d6543b") # check address format with pytest.raises(ValueError): account.transfer_batch([ BatchTransfer(to_account.checksum_address, 0.001), BatchTransfer("wrong_address", 0.001) ]) with pytest.raises(ValueError): account.transfer_batch([ BatchTransfer(to_account.address, 0.001), ]) with pytest.raises(ValueError): account.transfer_batch([ BatchTransfer(to_account.address0x, 0.001), ]) batch = [] total_zils = 0 for i in range(2): batch.append(BatchTransfer(to_account.checksum_address, Zil(i * 0.1))) total_zils += (i * 0.1) batch.append(BatchTransfer(to_account.bech32_address, Zil(i * 0.1))) total_zils += (i * 0.1) pprint(batch) txn_infos = account.transfer_batch(batch) pprint(txn_infos) for txn_info in txn_infos: if not txn_info: print("Failed to create txn") else: txn_details = account.wait_txn_confirm(txn_info["TranID"]) pprint(txn_details) if txn_details and txn_details["receipt"]["success"]: print("Txn success") else: print("Txn failed") balance2 = account.get_balance() print("Account1 balance", balance2) account2 = Account(private_key="d0b47febbef2bd0c4a4ee04aa20b60d61eb02635e8df5e7fd62409a2b1f5ddf8") txn_info = account2.transfer(account.bech32_address, total_zils, confirm=True) pprint(txn_info)
def test_txn(args): global ERROR_MESSAGE global SEND_ZILS_FORWARD_OR_BACK # Load source account account = Account(address=args['srchex'], private_key=args['srckey']) balance = account.get_balance() # Load destination account account2 = Account(address=args['dsthex'], private_key=args['dstkey']) balance2 = account2.get_balance() if SEND_ZILS_FORWARD_OR_BACK == True: print("SRC: {}: {}".format(account, balance)) print("DST: {}: {}".format(account2, balance2)) # Send 100 Qa from srchex to dstzil txn_info = account.transfer(to_addr=args['dstzil'], zils=Qa(100)) SEND_ZILS_FORWARD_OR_BACK = False else: print("SRC: {}: {}".format(account2, balance2)) print("DST: {}: {}".format(account, balance)) # Send 100 Qa from dsthex to srczil txn_info = account2.transfer(to_addr=args['srczil'], zils=Qa(100)) SEND_ZILS_FORWARD_OR_BACK = True pprint(txn_info) txn_id = txn_info["TranID"] sys.stdout.flush() # Wait for confirmation (timeout = 20mins, to take into account a view change) txn_details = account.wait_txn_confirm(txn_id, timeout=1200) pprint(txn_details) if txn_details and txn_details["receipt"]["success"]: print("Txn success: {}".format(txn_id)) else: print("Txn failed: {}".format(txn_id)) raise Exception("Txn failed: {}".format(txn_id))
def test_batch_transfer(self): chain.set_active_chain(chain.TestNet) account = Account.from_keystore( "zxcvbnm,", path_join("crypto", "zilliqa_keystore.json")) print(account) balance = account.get_balance() print("Account balance", balance) assert balance > 0 batch = [] for i in range(10): batch.append( BatchTransfer("b50c2404e699fd985f71b2c3f032059f13d6543b", Zil(i * 0.1))) pprint(batch) txn_infos = account.transfer_batch(batch) pprint(txn_infos) txn_details = account.wait_txn_confirm(txn_infos[0]["TranID"], timeout=120) pprint(txn_details) assert txn_details for txn_info in txn_infos: txn_details = account.wait_txn_confirm(txn_info["TranID"]) pprint(txn_details) balance2 = account.get_balance() print("Account1 balance", balance2) account2 = Account( private_key= "d0b47febbef2bd0c4a4ee04aa20b60d61eb02635e8df5e7fd62409a2b1f5ddf8") txn_info = account2.transfer(account.address, sum([b.zils for b in batch])) pprint(txn_info)
# load account from private key # private key is required to send ZILs account = Account( private_key= "8062536DED35314B4F9029CE98B5244B062452A8DE2545F49DBDF4D3713A9C20") balance2 = account.get_balance() print("Account balance: {}".format(balance2)) # to_addr must be bech32 address or 20 bytes checksum address to_addr = "0x8a17d9a236c7b6314892276877cb4462b0c2ab53" if not zilkey.is_valid_address(to_addr): print("hry") to_addr = bech32.encode("zil", utils.hex_str_to_bytes(to_addr)) print(to_addr) # send ZILs txn_info = account.transfer(to_addr=to_addr, zils=20.718) pprint(txn_info) txn_id = txn_info["TranID"] account = Account(address="0x8a17d9a236c7b6314892276877cb4462b0c2ab53") txn_details = account.wait_txn_confirm(txn_id, timeout=300) pprint(txn_details) if txn_details and txn_details["receipt"]["success"]: print("Txn success: {}".format(txn_id)) else: print("Txn failed: {}".format(txn_id)) balance = account.get_balance() print("{}: {}".format(account, balance)) # wait chain confirm, may takes 2-3 minutes on MainNet