diff --git a/defichain/transactions/builder/modules/data.py b/defichain/transactions/builder/modules/data.py index fc60b17..c9dc83c 100644 --- a/defichain/transactions/builder/modules/data.py +++ b/defichain/transactions/builder/modules/data.py @@ -62,7 +62,7 @@ def hex_data(self, data: str, addressAmountTo=None, changeAddress: str = None, i for address in addressAmountTo: value, token = addressAmountTo[address].split("@") - addressOutput = TxAddressOutput(value, address) + addressOutput = TxAddressOutput(int(value), address) tx.add_output(addressOutput) changeOutputValue = inputValue - outputValue diff --git a/tests/transactions/builder/__init__.py b/tests/transactions/builder/__init__.py index d1c5e8f..787a9e6 100644 --- a/tests/transactions/builder/__init__.py +++ b/tests/transactions/builder/__init__.py @@ -1,7 +1,7 @@ from defichain import Wallet, Ocean, TxBuilder from defichain.networks import DefichainMainnet from defichain.transactions.rawtransactions import Transaction -from defichain.transactions.utils import BuildAddressAmounts +from defichain.transactions.utils import BuildAddressAmounts, Converter class Keys: @@ -31,7 +31,22 @@ class TestAccounts: class TestData: - pass + string = "Hello DeFighters" + hex = Converter.str_to_hex(string) + + addressAmountTo = BuildAddressAmounts() + addressAmountTo.add(builder_p2pkh.get_address(), "DFI", 0.000001) + addressAmountTo.add(builder_p2sh.get_address(), "DFI", 0.000001) + addressAmountTo.add(builder_p2wpkh.get_address(), "DFI", 0.000001) + + hex_serialized = "0400000000010149b8ea9b2b0224e44126b86bd1e2889a7dac0ec06fcfb0dc4dd13782e1c84fce0100000000fffffff" \ + "f050000000000000000226a203438363536633663366632303434363534363639363736383734363537323733006400" \ + "0000000000001976a914ad56321e69b7e2d30aeca9f49979ffc53084296f88ac00640000000000000017a91493a457d" \ + "0e4cc789beb65eb77742d35297652dafe87006400000000000000160014ad56321e69b7e2d30aeca9f49979ffc53084" \ + "296f00403a000000000000160014ad56321e69b7e2d30aeca9f49979ffc53084296f0002483045022100e3841478525" \ + "ee6227f0725a4721d0ca3b81742043bee2ad5cbe22518a3effb2802206f34d721767b7d29916123a770e44b0c6a440e" \ + "d8b4e46fb8aed206311ae996be012103f110404297e471ad86d1aabc8a885bd4d1ec71bc3f31bef8ed2ff9ad3032460" \ + "000000000" class TestGovernance: @@ -119,4 +134,4 @@ class TestVault: pass -print(builder_p2wpkh.get_inputs_tx()) +print(builder_p2wpkh.data.hex_data(TestData.hex, TestData.addressAmountTo.build(), Addresses.P2WPKH)) diff --git a/tests/transactions/builder/test_data.py b/tests/transactions/builder/test_data.py new file mode 100644 index 0000000..dd30dde --- /dev/null +++ b/tests/transactions/builder/test_data.py @@ -0,0 +1,25 @@ +import pytest +from . import builder_p2wpkh, Addresses, TestData + +from defichain.transactions.rawtransactions import Transaction +from defichain.networks import DefichainMainnet + + +@pytest.mark.transactions +def test_hex_data(): # 01 + tx = builder_p2wpkh.data.hex_data(data=TestData.hex, addressAmountTo=TestData.addressAmountTo.build(), + changeAddress=Addresses.P2WPKH) + + assert tx.serialize() == TestData.hex_serialized + + assert Transaction.deserialize(DefichainMainnet, tx.serialize()).serialize() == tx.serialize() + + +@pytest.mark.transactions +def test_str_data(): # 02 + tx = builder_p2wpkh.data.str_data(data=TestData.string, addressAmountTo=TestData.addressAmountTo.build(), + changeAddress=Addresses.P2WPKH) + + assert tx.serialize() == TestData.hex_serialized + + assert Transaction.deserialize(DefichainMainnet, tx.serialize()).serialize() == tx.serialize()