Exemple #1
0
    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)
Exemple #2
0
    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
Exemple #3
0
    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)
Exemple #4
0
    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)
Exemple #5
0
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
Exemple #6
0
    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)
Exemple #7
0
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))
Exemple #8
0
    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)
Exemple #9
0
    # 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