Skip to content

Commit

Permalink
add test for data and fix small bug
Browse files Browse the repository at this point in the history
  • Loading branch information
eric-volz committed Aug 20, 2023
1 parent ae38b4f commit e021c30
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 4 deletions.
2 changes: 1 addition & 1 deletion defichain/transactions/builder/modules/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
21 changes: 18 additions & 3 deletions tests/transactions/builder/__init__.py
Original file line number Diff line number Diff line change
@@ -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:
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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))
25 changes: 25 additions & 0 deletions tests/transactions/builder/test_data.py
Original file line number Diff line number Diff line change
@@ -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()

0 comments on commit e021c30

Please sign in to comment.