def test_transfer_case9(self):
        """Test for transfer_value_with_the_fee function.
        Case when balance is same as sum of Amount and Fee.
        """

        password = "******"
        file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt")

        try:
            ret = wallet.transfer_value_with_the_fee(
                password,
                "10000000000000000",
                to="hx95e12b1f98f9b847175849f51bed5d121e742f6a",
                amount="1020000000000000000",
                file_path=file_path,
                url=url)

            password = "******"
            file_path = os.path.join(TEST_DIR,
                                     "test_keystore_for_transfer2.txt")
            ret = wallet.transfer_value_with_the_fee(
                password,
                "10000000000000000",
                to="hx66425784bfddb5b430136b38268c3ce1fb68e8c5",
                amount="1000000000000000000",
                file_path=file_path,
                url=url)

        except AmountIsInvalid:
            self.assertTrue(False)
        else:
            self.assertTrue(True)
    def test_transfer_case0_0(self):
        """Test for transfer_value_with_the_fee function.
         Case when transfer amount which is floating value to a wallet.
        """

        # Given
        password = "******"
        file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt")

        # When
        try:
            ret = bool(
                wallet.transfer_value_with_the_fee(
                    password,
                    "1000000000000000",
                    to="hxa974f512a510299b53c55535c105ed962fd01ee2",
                    amount="10000000000000001.2",
                    file_path=file_path,
                    url=url))

            # Then
            self.assertEqual(False, ret)

        except AmountIsNotInteger:
            self.assertTrue(True)
    def test_transfer_case0(self):
        """Test for transfer_value_with_the_fee function.
         Case when succeed transfer value.
        """

        # Given
        password = "******"
        file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt")

        # When
        try:
            ret = bool(
                wallet.transfer_value_with_the_fee(
                    password,
                    "10000000000000000",
                    to="hxa974f512a510299b53c55535c105ed962fd01ee2",
                    amount="1000000000000000000",
                    file_path=file_path,
                    url=url))

            # Then
            self.assertEqual(True, ret)

        except FileNotFoundError:
            self.assertFalse(True)
Esempio n. 4
0
    def test_transfer_case8(self):
        """Test for transfer_value_with_the_fee function.
        Case when Amount is 0.
        """
        password = "******"
        file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt")
        try:
            ret = wallet.transfer_value_with_the_fee(
                password, "10000000000000000", to="hxa974f512a510299b53c55535c105ed962fd01ee2",
                amount="0", file_path=file_path, url=url)

        except AmountIsInvalid:
            self.assertTrue(True)
        else:
            self.assertTrue(False)
Esempio n. 5
0
def transfer_value_with_the_fee(password, fee, to, amount, file_path, url) -> int:
    """ Transfer the value to the specific address with the fee.

    :param password: Password including alphabet character, number, and special character.
    If the user doesn’t give password with -p, then CLI will show the prompt and user need to type the password.
    type(str)
    :param fee: Transaction fee.
    :param to: A user can change the decimal point to express all numbers including fee and amount.
    :param amount: A user can change the decimal point to express all numbers including fee and amount.
    :param file_path: File path for the keystore file of the wallet. type(str)
    :return: Predefined exit code
    """
    try:
        transfer_result = wallet.transfer_value_with_the_fee(password, fee, to, amount, file_path, url)
        print("Transaction has been completed successfully.")
        return ExitCode.SUCCEED.value
    except wallet.NetworkIsInvalid:
        print(f"Fail: Network is invalid. It is impossible to connect {url}.")
        return ExitCode.NETWORK_IS_INVALID.value
    except FilePathIsWrong:
        return ExitCode.FILE_PATH_IS_WRONG.value
    except AddressIsWrong:
        print(f"Fail: The transaction target address does not have the correct format. please check the address again.")
        return ExitCode.WALLET_ADDRESS_IS_WRONG.value
    except PasswordIsWrong:
        print(f"Fail: Password is wrong.")
        return ExitCode.PASSWORD_IS_WRONG.value
    except NoEnoughBalanceInWallet:
        print(f"Fail: Wallet does not have enough balance.")
        return ExitCode.WALLET_DOES_NOT_HAVE_ENOUGH_BALANCE.value
    except AmountIsInvalid:
        print(f"Fail: The amount you want to transfer is not valid.")
        return ExitCode.AMOUNT_IS_INVALID.value
    except TransferFeeIsInvalid:
        print(f"Fail: Transaction Fee is invalid. The fee should be 10000000000000000.")
        return ExitCode.TRANSFER_FEE_IS_INVALID.value
    except FeeIsBiggerThanAmount:
        print(f"Fail: Fee is bigger than transaction amount. Please check your fee again.")
        return ExitCode.TRANSFER_FEE_IS_INVALID.value
    except NotAKeyStoreFile:
        print(f"Fail: {file_path} is not a Key store File.")
        return ExitCode.NOT_A_KEY_STORE_FILE.value
    except AddressIsSame:
        print(f"Fail: Wallet address to transfer must be different from Wallet address to deposit.")
        return ExitCode.WALLET_ADDRESS_IS_SAME.value
    except AmountIsNotInteger:
        print(f"Fail: Amount should be integer and loop unit, not icx")
        return ExitCode.AMOUNT_IS_NOT_INTEGER.value
Esempio n. 6
0
    def test_transfer_case10(self):
        """Test for transfer_value_with_the_fee function.
        Case when wallet address to transfer is same as wallet address to be sent.
        """

        password = "******"
        file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt")
        try:
            ret = wallet.transfer_value_with_the_fee(
                password, "10000000000000000", to="hx66425784bfddb5b430136b38268c3ce1fb68e8c5",
                amount="0", file_path=file_path, url=url)

        except AddressIsSame:
            self.assertTrue(True)
        else:
            self.assertTrue(False)
Esempio n. 7
0
    def test_transfer_case3(self):
        """Test for transfer_value_with_the_fee function.
        Case when wallet does not have enough balance.
        """
        # Given
        password = "******"
        file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt")
        # When
        try:
            ret = wallet.transfer_value_with_the_fee(
                password, 0.01, 18, to="hxa23651905dfa12221dd36b860dc114ef7f7a0786",
                amount="100000000", file_path=file_path, url=url)
            # Then

        except NoEnoughBalanceInWallet:
            self.assertTrue(True)
Esempio n. 8
0
    def test_transfer_case2(self):
        """Test for transfer_value_with_the_fee function.
        Case when password is wrong.
        """
        # Given
        password = "******"
        file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt")
        # When
        try:
            ret = wallet.transfer_value_with_the_fee(
                password, 0.01, 18, to="hxa23651905dfa12221dd36b860dc114ef7f7a0786",
                amount="1", file_path=file_path, url=url)
            # Then

        except PasswordIsWrong:
            self.assertTrue(True)
Esempio n. 9
0
    def test_transfer_case4(self):
        """Test for transfer_value_with_the_fee function.
        Case when transfer fee is invalid.
        """
        # Given
        password = "******"
        file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt")
        # When
        try:
            ret = wallet.transfer_value_with_the_fee(
                password, -1, 18, to="hxa23651905dfa12221dd36b860dc114ef7f7a0786",
                amount="1000", file_path=file_path, url=url)
            # Then

        except TransferFeeIsInvalid:
            self.assertTrue(True)
Esempio n. 10
0
    def test_transfer_case5(self):
        """Test for transfer_value_with_the_fee function.
        Case when wallet address is wrong.
        """
        # Given
        password = "******"
        file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt")
        print()
        # When
        try:
            ret = wallet.transfer_value_with_the_fee(
                password, 0.01, 18, to="hxa23651905d221dd36b",
                amount="1", file_path=file_path, url=url)
            # Then

        except AddressIsWrong:
            self.assertTrue(True)
Esempio n. 11
0
    def test_transfer_case3(self):
        """Test for transfer_value_with_the_fee function.
        Case when wallet does not have enough balance.
        """
        # Given
        password = "******"
        file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt")
        # When
        try:
            ret = wallet.transfer_value_with_the_fee(
                password, "10000000000000000", to="hxa974f512a510299b53c55535c105ed962fd01ee2",
                amount="10000000000000000000000000000000000000000000000000", file_path=file_path, url=url)
            # Then

        except NoEnoughBalanceInWallet:
            self.assertTrue(True)
        else:
            self.assertTrue(False)
Esempio n. 12
0
    def test_transfer_case2(self):
        """Test for transfer_value_with_the_fee function.
        Case when password is wrong.
        """
        # Given
        password = "******"
        file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt")
        # When
        try:
            ret = wallet.transfer_value_with_the_fee(
                password, "10000000000000000", to="hxa974f512a510299b53c55535c105ed962fd01ee2",
                amount="1000000000000000000", file_path=file_path, url=url)
            # Then

        except PasswordIsWrong:
            self.assertTrue(True)
        else:
            self.assertTrue(False)
Esempio n. 13
0
    def test_transfer_case0(self):
        """Test for transfer_value_with_the_fee function.
         Case when succeed transfer value.
        """

        # Given
        password = "******"
        file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt")

        # When
        try:
            ret = bool(wallet.transfer_value_with_the_fee(
                password, 0.01, 18, to="hxa23651905dfa12221dd36b860dc114ef7f7a0786",
                amount="1", file_path=file_path, url=url))

            # Then
            self.assertEqual(True, ret)

        except FileNotFoundError:
            self.assertFalse(True)
Esempio n. 14
0
    def test_transfer_case4(self):
        """Test for transfer_value_with_the_fee function.
        Case when transfer fee is invalid.
        """
        # Given
        password = "******"
        file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt")
        # When
        try:
            ret = wallet.transfer_value_with_the_fee(
                password,
                100000000000,
                to="hxa974f512a510299b53c55535c105ed962fd01ee2",
                amount="1000000000000000000",
                file_path=file_path,
                url=url)
            # Then

        except TransferFeeIsInvalid:
            self.assertTrue(True)
        else:
            self.assertTrue(False)
Esempio n. 15
0
    def test_transfer_case5(self):
        """Test for transfer_value_with_the_fee function.
        Case when wallet address is wrong.
        """
        # Given
        password = "******"
        file_path = os.path.join(TEST_DIR, "test_keystore_for_transfer.txt")

        # When
        try:
            ret = wallet.transfer_value_with_the_fee(
                password,
                10000000000000000,
                to="hxa974f512a510299b53c55535c105ed9",
                amount="1000000000000000000",
                file_path=file_path,
                url=url)
            # Then

        except AddressIsWrong:
            self.assertTrue(True)
        else:
            self.assertTrue(False)