Skip to content

Commit

Permalink
Add PSBT decode test
Browse files Browse the repository at this point in the history
  • Loading branch information
wizz-wallet-dev committed Jun 3, 2024
1 parent 1cbddb2 commit 5a6fa2d
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 11 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -yq libsnappy-dev zlib1g-dev libbz2-dev libgflags-dev liblz4-dev librocksdb-dev libleveldb-dev libboost-all-dev libsodium-dev
sudo apt-get install -yq libsnappy-dev zlib1g-dev libbz2-dev libgflags-dev liblz4-dev librocksdb-dev libleveldb-dev libboost-all-dev libsodium-dev libsecp256k1-dev
python -m pip install --upgrade pip setuptools wheel requests
pip install -r requirements.txt
pip install -r requirements-test.txt
Expand Down
1 change: 1 addition & 0 deletions requirements-test.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,4 @@ bell-yespower
cpupower
bitweb_yespower==1.0.5
python-bitcointx==1.1.5
secp256k1==0.14.0
28 changes: 18 additions & 10 deletions tests/lib/test_tx.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,18 +41,26 @@ def test_tx_serialization():

def test_psbt_parse():
psbt_hex = (
'70736274ff0100b002000000030d0b15eda761956158644571cb32675916ce29de46c52adb133f80902a7c7bd80000000000ffffffff4f'
'72b07125366b7aa7f09f68a6f02ceb535b6ebb854e679ba3864280827fb2e90000000000ffffffff77f5752181606a93589caf37040054'
'26b2fea128fc7db65cee422db781bcb9170000000000ffffffff01c060d21100000000220020b3d664a8b48a3402a71a86d01ee2ec91e2'
'527d006b5ca57e4edd04f3def30d35000000000001012200e1f505000000001976a9140b2537a7d6f3cc668c9e9fa0303ffb3cad6e9b81'
'88ac2206032be372801d8460dda52ae178aad774a54800ba56f949c97b8a2f51e299209d060c0f05694300000000000000000001012200'
'e1f505000000001976a914828b746c9cc6e2fbb89394f54ff40effd2a4b65188ac220602d922903b8eb295bb232fc0304d88cf1755a601'
'79156fa8f84970f0d4072d5fbb0c0f05694300000000010000000001012200e1f505000000001976a9141188d9744c0fe8e8faec772d0c'
'481bf81400f90988ac2206021fb423d42512e49d75a9d27415047a74378243cf7aee07c1b69ba7da0a03d4280c0f056943000000000200'
'0000000101220020b3d664a8b48a3402a71a86d01ee2ec91e2527d006b5ca57e4edd04f3def30d3500'
'70736274ff0100fd560102000000064486ba225b47dcecd1ef3c7587a9bef65e5a9f8d66cd4dc772c0d9e510ae11c40000000000fdffff'
'ffd231251aa68751fc525843a9d67e03b4edd82f38c80f805b71218be2c32ff79d0000000000fdffffffc5015487876028fae2c9c70811'
'9cdc87126d638ca675f317cbab1eb08c9cd0290000000000fdffffff6dbe10f94a7a53323dc54356d71aed5304da7ae7ef4b204dffcd70'
'abf86c89cb0000000000fdffffff5ccfb96fb6a9a09409eb7a64477e82618a566d8b4ef77d91f074e92845c6efd80000000000fdffffff'
'565f5673153473a6659ab441048eb6d2518f153a291a6fe431a28a4d656106c50200000000fdffffff024ed4000000000000225120cf6c'
'49f125fc865199771ac8d022af69eb632f28102114f72ce0dd81c617557e8813000000000000225120147a5a8865130d15d399a57be23f'
'8f3a1687314972d6ea1e5e34902fb8cb0221000000000001012bbc02000000000000225120cf6c49f125fc865199771ac8d022af69eb63'
'2f28102114f72ce0dd81c617557e011720ef8ff237474b31bd315cf561356fd943507572f479b68962466017105912dcf70001012bbc02'
'000000000000225120cf6c49f125fc865199771ac8d022af69eb632f28102114f72ce0dd81c617557e011720ef8ff237474b31bd315cf5'
'61356fd943507572f479b68962466017105912dcf70001012bbc02000000000000225120cf6c49f125fc865199771ac8d022af69eb632f'
'28102114f72ce0dd81c617557e011720ef8ff237474b31bd315cf561356fd943507572f479b68962466017105912dcf70001012bbc0200'
'0000000000225120cf6c49f125fc865199771ac8d022af69eb632f28102114f72ce0dd81c617557e011720ef8ff237474b31bd315cf561'
'356fd943507572f479b68962466017105912dcf70001012bbc02000000000000225120cf6c49f125fc865199771ac8d022af69eb632f28'
'102114f72ce0dd81c617557e011720ef8ff237474b31bd315cf561356fd943507572f479b68962466017105912dcf70001012ba0860100'
'00000000225120cf6c49f125fc865199771ac8d022af69eb632f2800000000000000000000000000000000000000000000000000000000'
'00000000000000000000000000000000000000000000'
)
decoded = tx_lib.psbt_hex_to_tx_hex(psbt_hex)
expected_tx = psbt.PartiallySignedTransaction.from_base64_or_binary(
bytes.fromhex(psbt_hex)
bytes.fromhex(psbt_hex),
validate=False,
).unsigned_tx.serialize().hex()
assert decoded == expected_tx

0 comments on commit 5a6fa2d

Please sign in to comment.