tx-engine 0.8.0__tar.gz → 0.9.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. {tx_engine-0.8.0 → tx_engine-0.9.0}/Cargo.lock +75 -103
  2. {tx_engine-0.8.0 → tx_engine-0.9.0}/Cargo.toml +6 -6
  3. {tx_engine-0.8.0 → tx_engine-0.9.0}/PKG-INFO +14 -2
  4. {tx_engine-0.8.0/docs → tx_engine-0.9.0}/README-chain-gang.md +14 -2
  5. {tx_engine-0.8.0 → tx_engine-0.9.0}/README-pypi.md +12 -0
  6. {tx_engine-0.8.0 → tx_engine-0.9.0}/README.md +3 -3
  7. tx_engine-0.9.0/docs/BIP-32-Python.md +68 -0
  8. tx_engine-0.9.0/docs/BIP-32.md +102 -0
  9. {tx_engine-0.8.0 → tx_engine-0.9.0}/docs/Python-API.md +67 -0
  10. {tx_engine-0.8.0 → tx_engine-0.9.0/docs}/README-chain-gang.md +14 -2
  11. {tx_engine-0.8.0 → tx_engine-0.9.0}/docs/README.md +3 -0
  12. {tx_engine-0.8.0 → tx_engine-0.9.0}/docs/Releases.md +1 -0
  13. {tx_engine-0.8.0 → tx_engine-0.9.0}/pyproject.toml +1 -1
  14. tx_engine-0.9.0/python/src/tests/test_hd_wallet.py +51 -0
  15. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/__init__.py +2 -2
  16. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/python/mod.rs +15 -0
  17. tx_engine-0.9.0/src/python/py_hd_wallet.rs +196 -0
  18. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/python/py_wallet.rs +6 -0
  19. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/wallet/extended_key.rs +134 -30
  20. tx_engine-0.9.0/src/wallet/hd_wallet.rs +217 -0
  21. tx_engine-0.9.0/src/wallet/hd_watch_wallet.rs +191 -0
  22. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/wallet/mnemonic.rs +57 -2
  23. tx_engine-0.9.0/src/wallet/mod.rs +30 -0
  24. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/wallet/wallet.rs +18 -0
  25. tx_engine-0.8.0/src/wallet/mod.rs +0 -19
  26. {tx_engine-0.8.0 → tx_engine-0.9.0}/.github/workflows/CI.yml +0 -0
  27. {tx_engine-0.8.0 → tx_engine-0.9.0}/.github/workflows/on_push.yml +0 -0
  28. {tx_engine-0.8.0 → tx_engine-0.9.0}/.gitignore +0 -0
  29. {tx_engine-0.8.0 → tx_engine-0.9.0}/LICENSE +0 -0
  30. {tx_engine-0.8.0 → tx_engine-0.9.0}/LICENSE-rust-sv +0 -0
  31. {tx_engine-0.8.0 → tx_engine-0.9.0}/docs/Chronicle-Python.md +0 -0
  32. {tx_engine-0.8.0 → tx_engine-0.9.0}/docs/Chronicle.md +0 -0
  33. {tx_engine-0.8.0 → tx_engine-0.9.0}/docs/Development.md +0 -0
  34. {tx_engine-0.8.0 → tx_engine-0.9.0}/docs/Requirements +0 -0
  35. {tx_engine-0.8.0 → tx_engine-0.9.0}/docs/diagrams/keys.png +0 -0
  36. {tx_engine-0.8.0 → tx_engine-0.9.0}/docs/diagrams/keys.puml +0 -0
  37. {tx_engine-0.8.0 → tx_engine-0.9.0}/docs/diagrams/overview.png +0 -0
  38. {tx_engine-0.8.0 → tx_engine-0.9.0}/docs/diagrams/overview.puml +0 -0
  39. {tx_engine-0.8.0 → tx_engine-0.9.0}/docs/diagrams/python_classes.png +0 -0
  40. {tx_engine-0.8.0 → tx_engine-0.9.0}/docs/diagrams/python_classes.puml +0 -0
  41. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/README.md +0 -0
  42. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/lint.sh +0 -0
  43. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/requirements.txt +0 -0
  44. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/README.md +0 -0
  45. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_bit_twiddling.py +0 -0
  46. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_bsv.py +0 -0
  47. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_chronicle_context.py +0 -0
  48. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_chronicle_opcodes.py +0 -0
  49. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_chronicle_tx_validate.py +0 -0
  50. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_debug.py +0 -0
  51. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_ec.py +0 -0
  52. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_fed.py +0 -0
  53. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_if.py +0 -0
  54. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_interface.py +0 -0
  55. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_op.py +0 -0
  56. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_parse.py +0 -0
  57. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_script.py +0 -0
  58. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_sighash.py +0 -0
  59. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_sign.py +0 -0
  60. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_tx.py +0 -0
  61. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_verify_script.py +0 -0
  62. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_wallet.py +0 -0
  63. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tests/test_woc.py +0 -0
  64. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/engine/__init__.py +0 -0
  65. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/engine/context.py +0 -0
  66. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/engine/cryptography_utils.py +0 -0
  67. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/engine/engine_types.py +0 -0
  68. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/engine/op_code_names.py +0 -0
  69. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/engine/op_codes.py +0 -0
  70. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/engine/util.py +0 -0
  71. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/interface/__init__.py +0 -0
  72. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/interface/blockchain_interface.py +0 -0
  73. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/interface/interface_factory.py +0 -0
  74. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/interface/mock_interface.py +0 -0
  75. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/interface/rpc_interface.py +0 -0
  76. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/interface/verify_script.py +0 -0
  77. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/interface/woc.py +0 -0
  78. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/interface/woc_interface.py +0 -0
  79. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/tx/__init__.py +0 -0
  80. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/src/tx_engine/tx/sighash.py +0 -0
  81. {tx_engine-0.8.0 → tx_engine-0.9.0}/python/tests.sh +0 -0
  82. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/address/mod.rs +0 -0
  83. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/chronicle.rs +0 -0
  84. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/interface/blockchain_interface.rs +0 -0
  85. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/interface/mod.rs +0 -0
  86. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/interface/test_interface.rs +0 -0
  87. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/interface/uaas_interface.rs +0 -0
  88. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/interface/woc_interface.rs +0 -0
  89. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/lib.rs +0 -0
  90. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/addr.rs +0 -0
  91. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/authch.rs +0 -0
  92. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/block.rs +0 -0
  93. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/block_header.rs +0 -0
  94. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/block_locator.rs +0 -0
  95. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/blocktxn.rs +0 -0
  96. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/cmpctblock.rs +0 -0
  97. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/createstrm.rs +0 -0
  98. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/fee_filter.rs +0 -0
  99. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/filter_add.rs +0 -0
  100. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/filter_load.rs +0 -0
  101. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/getblocktxn.rs +0 -0
  102. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/headers.rs +0 -0
  103. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/inv.rs +0 -0
  104. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/inv_vect.rs +0 -0
  105. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/merkle_block.rs +0 -0
  106. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/message.rs +0 -0
  107. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/message_header.rs +0 -0
  108. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/mod.rs +0 -0
  109. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/node_addr.rs +0 -0
  110. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/node_addr_ex.rs +0 -0
  111. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/out_point.rs +0 -0
  112. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/ping.rs +0 -0
  113. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/protoconf.rs +0 -0
  114. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/reject.rs +0 -0
  115. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/send_cmpct.rs +0 -0
  116. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/streamack.rs +0 -0
  117. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/tx.rs +0 -0
  118. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/tx_chronicle_validate.rs +0 -0
  119. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/tx_in.rs +0 -0
  120. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/tx_out.rs +0 -0
  121. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/messages/version.rs +0 -0
  122. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/network/mod.rs +0 -0
  123. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/network/network.rs +0 -0
  124. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/network/seed_iter.rs +0 -0
  125. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/peer/atomic_reader.rs +0 -0
  126. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/peer/mod.rs +0 -0
  127. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/peer/peer.rs +0 -0
  128. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/python/op_code_names.rs +0 -0
  129. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/python/py_script.rs +0 -0
  130. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/python/py_stack.rs +0 -0
  131. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/python/py_tx.rs +0 -0
  132. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/script/checker.rs +0 -0
  133. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/script/format.rs +0 -0
  134. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/script/interpreter/eval.rs +0 -0
  135. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/script/interpreter/mod.rs +0 -0
  136. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/script/interpreter/multisig.rs +0 -0
  137. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/script/interpreter/push.rs +0 -0
  138. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/script/interpreter/rules.rs +0 -0
  139. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/script/interpreter/script_code.rs +0 -0
  140. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/script/interpreter/tests.rs +0 -0
  141. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/script/mod.rs +0 -0
  142. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/script/op_codes.rs +0 -0
  143. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/script/stack.rs +0 -0
  144. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/transaction/mod.rs +0 -0
  145. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/transaction/p2pkh.rs +0 -0
  146. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/transaction/sighash.rs +0 -0
  147. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/util/bits.rs +0 -0
  148. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/util/bloom_filter.rs +0 -0
  149. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/util/errors.rs +0 -0
  150. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/util/future.rs +0 -0
  151. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/util/hash160.rs +0 -0
  152. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/util/hash256.rs +0 -0
  153. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/util/latch.rs +0 -0
  154. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/util/mod.rs +0 -0
  155. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/util/rx.rs +0 -0
  156. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/util/serdes.rs +0 -0
  157. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/util/sha1.rs +0 -0
  158. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/util/sha256.rs +0 -0
  159. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/util/var_int.rs +0 -0
  160. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/wallet/base58_checksum.rs +0 -0
  161. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/wallet/wordlists/chinese_simplified.txt +0 -0
  162. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/wallet/wordlists/chinese_traditional.txt +0 -0
  163. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/wallet/wordlists/english.txt +0 -0
  164. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/wallet/wordlists/french.txt +0 -0
  165. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/wallet/wordlists/italian.txt +0 -0
  166. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/wallet/wordlists/japanese.txt +0 -0
  167. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/wallet/wordlists/korean.txt +0 -0
  168. {tx_engine-0.8.0 → tx_engine-0.9.0}/src/wallet/wordlists/spanish.txt +0 -0
  169. {tx_engine-0.8.0 → tx_engine-0.9.0}/tools/README.md +0 -0
  170. {tx_engine-0.8.0 → tx_engine-0.9.0}/tools/dbg.py +0 -0
  171. {tx_engine-0.8.0 → tx_engine-0.9.0}/tools/generate_key.py +0 -0
@@ -91,9 +91,9 @@ checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06"
91
91
 
92
92
  [[package]]
93
93
  name = "bitflags"
94
- version = "2.11.1"
94
+ version = "2.13.0"
95
95
  source = "registry+https://github.com/rust-lang/crates.io-index"
96
- checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3"
96
+ checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8"
97
97
 
98
98
  [[package]]
99
99
  name = "block-buffer"
@@ -118,15 +118,15 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
118
118
 
119
119
  [[package]]
120
120
  name = "bytes"
121
- version = "1.11.1"
121
+ version = "1.12.0"
122
122
  source = "registry+https://github.com/rust-lang/crates.io-index"
123
- checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
123
+ checksum = "8ae3f5d315924270530207e2a68396c3cc547f6dca3fbdca317cfb1a51edb593"
124
124
 
125
125
  [[package]]
126
126
  name = "cc"
127
- version = "1.2.62"
127
+ version = "1.2.65"
128
128
  source = "registry+https://github.com/rust-lang/crates.io-index"
129
- checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98"
129
+ checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96"
130
130
  dependencies = [
131
131
  "find-msvc-tools",
132
132
  "jobserver",
@@ -148,7 +148,7 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724"
148
148
 
149
149
  [[package]]
150
150
  name = "chain-gang"
151
- version = "0.8.0"
151
+ version = "0.9.0"
152
152
  dependencies = [
153
153
  "async-mutex",
154
154
  "async-trait",
@@ -294,9 +294,9 @@ dependencies = [
294
294
 
295
295
  [[package]]
296
296
  name = "displaydoc"
297
- version = "0.2.5"
297
+ version = "0.2.6"
298
298
  source = "registry+https://github.com/rust-lang/crates.io-index"
299
- checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
299
+ checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f"
300
300
  dependencies = [
301
301
  "proc-macro2",
302
302
  "quote",
@@ -502,9 +502,9 @@ dependencies = [
502
502
 
503
503
  [[package]]
504
504
  name = "h2"
505
- version = "0.4.14"
505
+ version = "0.4.15"
506
506
  source = "registry+https://github.com/rust-lang/crates.io-index"
507
- checksum = "171fefbc92fe4a4de27e0698d6a5b392d6a0e333506bc49133760b3bcf948733"
507
+ checksum = "6cb093c84e8bd9b188d4c4a8cb6579fc016968d14c99882163cd3ff402a4f155"
508
508
  dependencies = [
509
509
  "atomic-waker",
510
510
  "bytes",
@@ -548,9 +548,9 @@ dependencies = [
548
548
 
549
549
  [[package]]
550
550
  name = "http"
551
- version = "1.4.1"
551
+ version = "1.4.2"
552
552
  source = "registry+https://github.com/rust-lang/crates.io-index"
553
- checksum = "8be7462df143984c4598a256ef469b251d7d7f9e271135073e78fc535414f3d0"
553
+ checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425"
554
554
  dependencies = [
555
555
  "bytes",
556
556
  "itoa",
@@ -587,9 +587,9 @@ checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
587
587
 
588
588
  [[package]]
589
589
  name = "hyper"
590
- version = "1.9.0"
590
+ version = "1.10.1"
591
591
  source = "registry+https://github.com/rust-lang/crates.io-index"
592
- checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca"
592
+ checksum = "55281c53a1894c864990125767da440a4e630446785086f52523b20033b74498"
593
593
  dependencies = [
594
594
  "atomic-waker",
595
595
  "bytes",
@@ -759,15 +759,6 @@ dependencies = [
759
759
  "hashbrown",
760
760
  ]
761
761
 
762
- [[package]]
763
- name = "indoc"
764
- version = "2.0.7"
765
- source = "registry+https://github.com/rust-lang/crates.io-index"
766
- checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
767
- dependencies = [
768
- "rustversion",
769
- ]
770
-
771
762
  [[package]]
772
763
  name = "ipnet"
773
764
  version = "2.12.0"
@@ -841,13 +832,12 @@ dependencies = [
841
832
 
842
833
  [[package]]
843
834
  name = "js-sys"
844
- version = "0.3.99"
835
+ version = "0.3.102"
845
836
  source = "registry+https://github.com/rust-lang/crates.io-index"
846
- checksum = "142bc4740e452c1e57ade0cbc129f139c9093e354346f0872ef985f4f5cf5f11"
837
+ checksum = "03d04c30968dffe80775bd4d7fb676131cd04a1fb46d2686dbffbaec2d9dfd31"
847
838
  dependencies = [
848
839
  "cfg-if",
849
840
  "futures-util",
850
- "once_cell",
851
841
  "wasm-bindgen",
852
842
  ]
853
843
 
@@ -891,9 +881,9 @@ checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0"
891
881
 
892
882
  [[package]]
893
883
  name = "log"
894
- version = "0.4.30"
884
+ version = "0.4.33"
895
885
  source = "registry+https://github.com/rust-lang/crates.io-index"
896
- checksum = "616ec5685824bcc94416c6d4a7a446eea774a31efd7062c8480ba6fd06d7a6e5"
886
+ checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad"
897
887
 
898
888
  [[package]]
899
889
  name = "lru-slab"
@@ -903,18 +893,9 @@ checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
903
893
 
904
894
  [[package]]
905
895
  name = "memchr"
906
- version = "2.8.0"
907
- source = "registry+https://github.com/rust-lang/crates.io-index"
908
- checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
909
-
910
- [[package]]
911
- name = "memoffset"
912
- version = "0.9.1"
896
+ version = "2.8.2"
913
897
  source = "registry+https://github.com/rust-lang/crates.io-index"
914
- checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
915
- dependencies = [
916
- "autocfg",
917
- ]
898
+ checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4"
918
899
 
919
900
  [[package]]
920
901
  name = "mime"
@@ -924,9 +905,9 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
924
905
 
925
906
  [[package]]
926
907
  name = "mio"
927
- version = "1.2.0"
908
+ version = "1.2.1"
928
909
  source = "registry+https://github.com/rust-lang/crates.io-index"
929
- checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1"
910
+ checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda"
930
911
  dependencies = [
931
912
  "libc",
932
913
  "wasi",
@@ -1046,35 +1027,32 @@ dependencies = [
1046
1027
 
1047
1028
  [[package]]
1048
1029
  name = "pyo3"
1049
- version = "0.27.2"
1030
+ version = "0.28.3"
1050
1031
  source = "registry+https://github.com/rust-lang/crates.io-index"
1051
- checksum = "ab53c047fcd1a1d2a8820fe84f05d6be69e9526be40cb03b73f86b6b03e6d87d"
1032
+ checksum = "91fd8e38a3b50ed1167fb981cd6fd60147e091784c427b8f7183a7ee32c31c12"
1052
1033
  dependencies = [
1053
- "indoc",
1054
1034
  "libc",
1055
- "memoffset",
1056
1035
  "once_cell",
1057
1036
  "portable-atomic",
1058
1037
  "pyo3-build-config",
1059
1038
  "pyo3-ffi",
1060
1039
  "pyo3-macros",
1061
- "unindent",
1062
1040
  ]
1063
1041
 
1064
1042
  [[package]]
1065
1043
  name = "pyo3-build-config"
1066
- version = "0.27.2"
1044
+ version = "0.28.3"
1067
1045
  source = "registry+https://github.com/rust-lang/crates.io-index"
1068
- checksum = "b455933107de8642b4487ed26d912c2d899dec6114884214a0b3bb3be9261ea6"
1046
+ checksum = "e368e7ddfdeb98c9bca7f8383be1648fd84ab466bf2bc015e94008db6d35611e"
1069
1047
  dependencies = [
1070
1048
  "target-lexicon",
1071
1049
  ]
1072
1050
 
1073
1051
  [[package]]
1074
1052
  name = "pyo3-ffi"
1075
- version = "0.27.2"
1053
+ version = "0.28.3"
1076
1054
  source = "registry+https://github.com/rust-lang/crates.io-index"
1077
- checksum = "1c85c9cbfaddf651b1221594209aed57e9e5cff63c4d11d1feead529b872a089"
1055
+ checksum = "7f29e10af80b1f7ccaf7f69eace800a03ecd13e883acfacc1e5d0988605f651e"
1078
1056
  dependencies = [
1079
1057
  "libc",
1080
1058
  "pyo3-build-config",
@@ -1082,9 +1060,9 @@ dependencies = [
1082
1060
 
1083
1061
  [[package]]
1084
1062
  name = "pyo3-macros"
1085
- version = "0.27.2"
1063
+ version = "0.28.3"
1086
1064
  source = "registry+https://github.com/rust-lang/crates.io-index"
1087
- checksum = "0a5b10c9bf9888125d917fb4d2ca2d25c8df94c7ab5a52e13313a07e050a3b02"
1065
+ checksum = "df6e520eff47c45997d2fc7dd8214b25dd1310918bbb2642156ef66a67f29813"
1088
1066
  dependencies = [
1089
1067
  "proc-macro2",
1090
1068
  "pyo3-macros-backend",
@@ -1094,9 +1072,9 @@ dependencies = [
1094
1072
 
1095
1073
  [[package]]
1096
1074
  name = "pyo3-macros-backend"
1097
- version = "0.27.2"
1075
+ version = "0.28.3"
1098
1076
  source = "registry+https://github.com/rust-lang/crates.io-index"
1099
- checksum = "03b51720d314836e53327f5871d4c0cfb4fb37cc2c4a11cc71907a86342c40f9"
1077
+ checksum = "c4cdc218d835738f81c2338f822078af45b4afdf8b2e33cbb5916f108b813acb"
1100
1078
  dependencies = [
1101
1079
  "heck",
1102
1080
  "proc-macro2",
@@ -1163,9 +1141,9 @@ dependencies = [
1163
1141
 
1164
1142
  [[package]]
1165
1143
  name = "quote"
1166
- version = "1.0.45"
1144
+ version = "1.0.46"
1167
1145
  source = "registry+https://github.com/rust-lang/crates.io-index"
1168
- checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
1146
+ checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368"
1169
1147
  dependencies = [
1170
1148
  "proc-macro2",
1171
1149
  ]
@@ -1237,9 +1215,9 @@ dependencies = [
1237
1215
 
1238
1216
  [[package]]
1239
1217
  name = "regex"
1240
- version = "1.12.3"
1218
+ version = "1.12.4"
1241
1219
  source = "registry+https://github.com/rust-lang/crates.io-index"
1242
- checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276"
1220
+ checksum = "f1292b7759ae1cb9ec195452d1390a074f0cd8541ab7a5a8c31cd6db45d4a6ba"
1243
1221
  dependencies = [
1244
1222
  "aho-corasick",
1245
1223
  "memchr",
@@ -1260,9 +1238,9 @@ dependencies = [
1260
1238
 
1261
1239
  [[package]]
1262
1240
  name = "regex-syntax"
1263
- version = "0.8.10"
1241
+ version = "0.8.11"
1264
1242
  source = "registry+https://github.com/rust-lang/crates.io-index"
1265
- checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
1243
+ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
1266
1244
 
1267
1245
  [[package]]
1268
1246
  name = "reqwest"
@@ -1368,9 +1346,9 @@ dependencies = [
1368
1346
 
1369
1347
  [[package]]
1370
1348
  name = "rustls-native-certs"
1371
- version = "0.8.3"
1349
+ version = "0.8.4"
1372
1350
  source = "registry+https://github.com/rust-lang/crates.io-index"
1373
- checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63"
1351
+ checksum = "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d"
1374
1352
  dependencies = [
1375
1353
  "openssl-probe",
1376
1354
  "rustls-pki-types",
@@ -1561,9 +1539,9 @@ dependencies = [
1561
1539
 
1562
1540
  [[package]]
1563
1541
  name = "shlex"
1564
- version = "1.3.0"
1542
+ version = "2.0.1"
1565
1543
  source = "registry+https://github.com/rust-lang/crates.io-index"
1566
- checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
1544
+ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
1567
1545
 
1568
1546
  [[package]]
1569
1547
  name = "signature"
@@ -1599,9 +1577,9 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
1599
1577
 
1600
1578
  [[package]]
1601
1579
  name = "smallvec"
1602
- version = "1.15.1"
1580
+ version = "1.15.2"
1603
1581
  source = "registry+https://github.com/rust-lang/crates.io-index"
1604
- checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
1582
+ checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
1605
1583
 
1606
1584
  [[package]]
1607
1585
  name = "snowflake"
@@ -1611,9 +1589,9 @@ checksum = "27207bb65232eda1f588cf46db2fee75c0808d557f6b3cf19a75f5d6d7c94df1"
1611
1589
 
1612
1590
  [[package]]
1613
1591
  name = "socket2"
1614
- version = "0.6.3"
1592
+ version = "0.6.4"
1615
1593
  source = "registry+https://github.com/rust-lang/crates.io-index"
1616
- checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e"
1594
+ checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51"
1617
1595
  dependencies = [
1618
1596
  "libc",
1619
1597
  "windows-sys 0.61.2",
@@ -1643,9 +1621,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
1643
1621
 
1644
1622
  [[package]]
1645
1623
  name = "syn"
1646
- version = "2.0.117"
1624
+ version = "2.0.118"
1647
1625
  source = "registry+https://github.com/rust-lang/crates.io-index"
1648
- checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
1626
+ checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422"
1649
1627
  dependencies = [
1650
1628
  "proc-macro2",
1651
1629
  "quote",
@@ -1853,9 +1831,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
1853
1831
 
1854
1832
  [[package]]
1855
1833
  name = "typenum"
1856
- version = "1.20.0"
1834
+ version = "1.20.1"
1857
1835
  source = "registry+https://github.com/rust-lang/crates.io-index"
1858
- checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de"
1836
+ checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
1859
1837
 
1860
1838
  [[package]]
1861
1839
  name = "unicode-ident"
@@ -1863,12 +1841,6 @@ version = "1.0.24"
1863
1841
  source = "registry+https://github.com/rust-lang/crates.io-index"
1864
1842
  checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
1865
1843
 
1866
- [[package]]
1867
- name = "unindent"
1868
- version = "0.2.4"
1869
- source = "registry+https://github.com/rust-lang/crates.io-index"
1870
- checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
1871
-
1872
1844
  [[package]]
1873
1845
  name = "untrusted"
1874
1846
  version = "0.9.0"
@@ -1926,18 +1898,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
1926
1898
 
1927
1899
  [[package]]
1928
1900
  name = "wasip2"
1929
- version = "1.0.3+wasi-0.2.9"
1901
+ version = "1.0.4+wasi-0.2.12"
1930
1902
  source = "registry+https://github.com/rust-lang/crates.io-index"
1931
- checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6"
1903
+ checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487"
1932
1904
  dependencies = [
1933
1905
  "wit-bindgen",
1934
1906
  ]
1935
1907
 
1936
1908
  [[package]]
1937
1909
  name = "wasm-bindgen"
1938
- version = "0.2.122"
1910
+ version = "0.2.125"
1939
1911
  source = "registry+https://github.com/rust-lang/crates.io-index"
1940
- checksum = "3ed04576f974d2b2fba0f38c51dbc5518011e38c36bf1143164be765528fd409"
1912
+ checksum = "8ddb3f79143bced6de84270411622a2699cee572fc0875aeaf1e7867cf9fca1a"
1941
1913
  dependencies = [
1942
1914
  "cfg-if",
1943
1915
  "once_cell",
@@ -1948,9 +1920,9 @@ dependencies = [
1948
1920
 
1949
1921
  [[package]]
1950
1922
  name = "wasm-bindgen-futures"
1951
- version = "0.4.72"
1923
+ version = "0.4.75"
1952
1924
  source = "registry+https://github.com/rust-lang/crates.io-index"
1953
- checksum = "9473dbd2991ae90b6291c3c32c30c6187ac49aa32f9905d1cce280ec1e110b0f"
1925
+ checksum = "503b14d284f2c8dac03b819967e155ea753f573586193b2b2c95990cb5d69280"
1954
1926
  dependencies = [
1955
1927
  "js-sys",
1956
1928
  "wasm-bindgen",
@@ -1958,9 +1930,9 @@ dependencies = [
1958
1930
 
1959
1931
  [[package]]
1960
1932
  name = "wasm-bindgen-macro"
1961
- version = "0.2.122"
1933
+ version = "0.2.125"
1962
1934
  source = "registry+https://github.com/rust-lang/crates.io-index"
1963
- checksum = "916151b09da36bd82f6615cbf3a419e2f0ba23a03c6160e8e92eb6bd4aa1dec6"
1935
+ checksum = "4e21a184b13fb19e157296e2c46056aec9092264fab83e4ba59e68c61b323c3d"
1964
1936
  dependencies = [
1965
1937
  "quote",
1966
1938
  "wasm-bindgen-macro-support",
@@ -1968,9 +1940,9 @@ dependencies = [
1968
1940
 
1969
1941
  [[package]]
1970
1942
  name = "wasm-bindgen-macro-support"
1971
- version = "0.2.122"
1943
+ version = "0.2.125"
1972
1944
  source = "registry+https://github.com/rust-lang/crates.io-index"
1973
- checksum = "299047362ccbfce148b67ab7e73349f77748e00c8296f9542adfad2ad82c5c5e"
1945
+ checksum = "fecefd9c35bd935a20fc3fc344b5f29138961e4f47fb03297d88f2587afb5ebd"
1974
1946
  dependencies = [
1975
1947
  "bumpalo",
1976
1948
  "proc-macro2",
@@ -1981,18 +1953,18 @@ dependencies = [
1981
1953
 
1982
1954
  [[package]]
1983
1955
  name = "wasm-bindgen-shared"
1984
- version = "0.2.122"
1956
+ version = "0.2.125"
1985
1957
  source = "registry+https://github.com/rust-lang/crates.io-index"
1986
- checksum = "9a929b2c61f11ba3e9bc35b50c1f25cb38e0e892c0c231ae2b8cf78d5dad4437"
1958
+ checksum = "23939e44bb9a5d7576fa2b563dc2e136628f1224e88a8deed09e04858b77871f"
1987
1959
  dependencies = [
1988
1960
  "unicode-ident",
1989
1961
  ]
1990
1962
 
1991
1963
  [[package]]
1992
1964
  name = "web-sys"
1993
- version = "0.3.99"
1965
+ version = "0.3.102"
1994
1966
  source = "registry+https://github.com/rust-lang/crates.io-index"
1995
- checksum = "6d621441cfc37b84979402712047321980c178f299193a3589d05b99e8763436"
1967
+ checksum = "a6430a72df5eb332242960fe84b3002a241163998241eb596d4f739b9757061d"
1996
1968
  dependencies = [
1997
1969
  "js-sys",
1998
1970
  "wasm-bindgen",
@@ -2010,9 +1982,9 @@ dependencies = [
2010
1982
 
2011
1983
  [[package]]
2012
1984
  name = "webpki-root-certs"
2013
- version = "1.0.7"
1985
+ version = "1.0.8"
2014
1986
  source = "registry+https://github.com/rust-lang/crates.io-index"
2015
- checksum = "f31141ce3fc3e300ae89b78c0dd67f9708061d1d2eda54b8209346fd6be9a92c"
1987
+ checksum = "0d46a5a140e6f7afeccd8eae97eff335163939eac8b929834875168b29b3d267"
2016
1988
  dependencies = [
2017
1989
  "rustls-pki-types",
2018
1990
  ]
@@ -2231,9 +2203,9 @@ checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4"
2231
2203
 
2232
2204
  [[package]]
2233
2205
  name = "yoke"
2234
- version = "0.8.2"
2206
+ version = "0.8.3"
2235
2207
  source = "registry+https://github.com/rust-lang/crates.io-index"
2236
- checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca"
2208
+ checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5"
2237
2209
  dependencies = [
2238
2210
  "stable_deref_trait",
2239
2211
  "yoke-derive",
@@ -2254,18 +2226,18 @@ dependencies = [
2254
2226
 
2255
2227
  [[package]]
2256
2228
  name = "zerocopy"
2257
- version = "0.8.48"
2229
+ version = "0.8.52"
2258
2230
  source = "registry+https://github.com/rust-lang/crates.io-index"
2259
- checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9"
2231
+ checksum = "ce1022995ff5ff5d841ad7d994facc23098cd40152f2c1d11cd607c6f530653f"
2260
2232
  dependencies = [
2261
2233
  "zerocopy-derive",
2262
2234
  ]
2263
2235
 
2264
2236
  [[package]]
2265
2237
  name = "zerocopy-derive"
2266
- version = "0.8.48"
2238
+ version = "0.8.52"
2267
2239
  source = "registry+https://github.com/rust-lang/crates.io-index"
2268
- checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4"
2240
+ checksum = "1ae7f38b72ec2a254e2b87ef277cf2cd4fb97cbebf944faa6f33354da0867930"
2269
2241
  dependencies = [
2270
2242
  "proc-macro2",
2271
2243
  "quote",
@@ -2295,9 +2267,9 @@ dependencies = [
2295
2267
 
2296
2268
  [[package]]
2297
2269
  name = "zeroize"
2298
- version = "1.8.2"
2270
+ version = "1.9.0"
2299
2271
  source = "registry+https://github.com/rust-lang/crates.io-index"
2300
- checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
2272
+ checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e"
2301
2273
 
2302
2274
  [[package]]
2303
2275
  name = "zerotrie"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "chain-gang"
3
- version = "0.8.0"
3
+ version = "0.9.0"
4
4
  description = "This is a library that enables monitoring of multiple blockchains (BTC, BCH, BSV)."
5
5
  # repository = "https://github.com/brentongunning/rust-sv"
6
6
  authors = ["Arthur Gordon <a.gordon@nchain.com>"]
@@ -14,7 +14,7 @@ byteorder = "1.5"
14
14
  dns-lookup = "3.0.1"
15
15
  hex = "0.4.3"
16
16
  linked-hash-map = "0.5"
17
- log = { version = "0.4.29", features = ["max_level_trace", "release_max_level_warn"] }
17
+ log = { version = "0.4.32", features = ["max_level_trace", "release_max_level_warn"] }
18
18
  db-key = "0.0.5" # this is a non-trival update
19
19
  thiserror = "2.0.18"
20
20
  url = "2.5.8"
@@ -38,16 +38,16 @@ pbkdf2 = "0.12.2"
38
38
  # Used by the interface feature
39
39
  serde = { version = "1.0.228", features = ["derive"], optional = true }
40
40
  serde_json = { version = "1.0.150", optional = true }
41
- reqwest = { version = "0.13.3", features = ["json"], optional = true }
41
+ reqwest = { version = "0.13.4", features = ["json"], optional = true }
42
42
  async-mutex = { version = "1.4.1", optional = true }
43
43
  async-trait = { version = "0.1.89", optional = true }
44
44
 
45
45
  # For python feature
46
- pyo3 = { version = "0.27.2", optional = true }
47
- regex = "^1.12.3"
46
+ pyo3 = { version = "0.28.2", optional = true }
47
+ regex = "1.12.4"
48
48
  lazy_static = "1.5.0"
49
49
  rand_core = "0.9.5"
50
- typenum = "1.20.0"
50
+ typenum = "1.20.1"
51
51
 
52
52
 
53
53
  [lib]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tx_engine
3
- Version: 0.8.0
3
+ Version: 0.9.0
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: 3
6
6
  Classifier: Programming Language :: Python :: 3.11
@@ -11,7 +11,7 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
11
11
  Classifier: Programming Language :: Python :: Implementation :: PyPy
12
12
  Requires-Dist: requests==2.34.2
13
13
  Requires-Dist: python-bitcoinrpc==1.0
14
- Requires-Dist: cryptography==48.0.0
14
+ Requires-Dist: cryptography==49.0.0
15
15
  License-File: LICENSE
16
16
  License-File: LICENSE-rust-sv
17
17
  Summary: This library provides a Python interface for building BitcoinSV scripts and transactions.
@@ -34,6 +34,7 @@ pip install tx-engine
34
34
  |-------|------|
35
35
  | Documentation index | [docs/README.md](docs/README.md) |
36
36
  | Python class reference | [docs/Python-API.md](docs/Python-API.md) |
37
+ | HD wallets (mnemonic, BIP-44) | [docs/BIP-32-Python.md](docs/BIP-32-Python.md) |
37
38
  | Chronicle (Python examples) | [docs/Chronicle-Python.md](docs/Chronicle-Python.md) |
38
39
  | Chronicle (full spec) | [docs/Chronicle.md](docs/Chronicle.md) |
39
40
  | Local development | [python/README.md](python/README.md) |
@@ -69,3 +70,14 @@ Chronicle script rules apply when **`tx.version > 1`**. Use `version: 2` (or hig
69
70
 
70
71
  See [docs/Chronicle.md](docs/Chronicle.md) for sighash routing, opcodes, two-phase evaluation, malleability rules, and script number limits.
71
72
 
73
+ ## HD wallets
74
+
75
+ BIP-32 / BIP-39 / BIP-44 support via `HdWallet` and watch-only `HdWatchWallet`. Guide: [docs/BIP-32-Python.md](docs/BIP-32-Python.md).
76
+
77
+ ```python
78
+ from tx_engine import HdWallet, bsv_coin_type
79
+
80
+ hd = HdWallet.from_mnemonic("BSV_Mainnet", "abandon abandon ... about")
81
+ print(hd.address_at_bip44(bsv_coin_type(), 0, True, 0))
82
+ ```
83
+
@@ -22,7 +22,7 @@ Features (all blockchains)
22
22
  BSV only Features
23
23
  * Transaction signing
24
24
  * Script evaluation
25
- * Wallet key derivation and mnemonic parsing
25
+ * Wallet key derivation, BIP-32 HD wallets (`HdWallet`), and mnemonic parsing
26
26
  * Various Bitcoin primitives
27
27
  * Genesis upgrade support
28
28
  * [Chronicle upgrade](Chronicle.md) (OTDA sighash, opcodes, two-phase eval, `tx.version > 1` rules)
@@ -54,7 +54,19 @@ To build the library with the `python` feature
54
54
  ```bash
55
55
  cargo build --features "python"
56
56
  ```
57
- For more details of the `python` feature see [python/README.md](../python/README.md). Full documentation index: [docs/README.md](README.md).
57
+ For more details of the `python` feature see [python/README.md](../python/README.md). Full documentation index: [docs/README.md](README.md). HD wallets: [BIP-32.md](BIP-32.md).
58
+
59
+ ## HD wallets (BIP-32)
60
+
61
+ ```rust
62
+ use chain_gang::network::Network;
63
+ use chain_gang::wallet::{HdWallet, bip44_path, BSV_COIN_TYPE};
64
+
65
+ let hd = HdWallet::from_seed(Network::BSV_Mainnet, &seed)?;
66
+ let addr = hd.address_at_bip44(BSV_COIN_TYPE, 0, true, 0)?;
67
+ ```
68
+
69
+ See [BIP-32.md](BIP-32.md) for mnemonics, watch-only `xpub`, and gap-limit scanning.
58
70
 
59
71
  # Known limitations
60
72
 
@@ -14,6 +14,7 @@ pip install tx-engine
14
14
  |-------|------|
15
15
  | Documentation index | [docs/README.md](docs/README.md) |
16
16
  | Python class reference | [docs/Python-API.md](docs/Python-API.md) |
17
+ | HD wallets (mnemonic, BIP-44) | [docs/BIP-32-Python.md](docs/BIP-32-Python.md) |
17
18
  | Chronicle (Python examples) | [docs/Chronicle-Python.md](docs/Chronicle-Python.md) |
18
19
  | Chronicle (full spec) | [docs/Chronicle.md](docs/Chronicle.md) |
19
20
  | Local development | [python/README.md](python/README.md) |
@@ -48,3 +49,14 @@ Chronicle script rules apply when **`tx.version > 1`**. Use `version: 2` (or hig
48
49
  | Script debugger / partial eval | `Context(tx_version=2, lock_script=...)` |
49
50
 
50
51
  See [docs/Chronicle.md](docs/Chronicle.md) for sighash routing, opcodes, two-phase evaluation, malleability rules, and script number limits.
52
+
53
+ ## HD wallets
54
+
55
+ BIP-32 / BIP-39 / BIP-44 support via `HdWallet` and watch-only `HdWatchWallet`. Guide: [docs/BIP-32-Python.md](docs/BIP-32-Python.md).
56
+
57
+ ```python
58
+ from tx_engine import HdWallet, bsv_coin_type
59
+
60
+ hd = HdWallet.from_mnemonic("BSV_Mainnet", "abandon abandon ... about")
61
+ print(hd.address_at_bip44(bsv_coin_type(), 0, True, 0))
62
+ ```
@@ -21,14 +21,14 @@ Full documentation index: [docs/README.md](docs/README.md).
21
21
 
22
22
  **All chains:** P2P messages, address encoding, node connections, mainnet/testnet.
23
23
 
24
- **BSV only:** transaction signing, script evaluation, wallet/key derivation, Genesis upgrade, [Chronicle upgrade](docs/Chronicle.md) (OTDA sighash, opcodes, two-phase eval, `tx.version > 1` rules).
24
+ **BSV only:** transaction signing, script evaluation, wallet/key derivation (BIP-32 HD wallets), Genesis upgrade, [Chronicle upgrade](docs/Chronicle.md) (OTDA sighash, opcodes, two-phase eval, `tx.version > 1` rules).
25
25
 
26
26
  ## Rust usage
27
27
 
28
28
  Add to `Cargo.toml`:
29
29
 
30
30
  ```toml
31
- chain-gang = "0.7"
31
+ chain-gang = "0.9"
32
32
  ```
33
33
 
34
34
  Build with optional features:
@@ -46,7 +46,7 @@ Chronicle helpers: `chain_gang::chronicle` — see [docs/Chronicle.md](docs/Chro
46
46
  pip install tx-engine # Python 3.11+
47
47
  ```
48
48
 
49
- PyPI shows [README-pypi.md](README-pypi.md). Class reference: [docs/Python-API.md](docs/Python-API.md). Chronicle examples: [docs/Chronicle-Python.md](docs/Chronicle-Python.md). Local dev: [python/README.md](python/README.md).
49
+ PyPI shows [README-pypi.md](README-pypi.md). Class reference: [docs/Python-API.md](docs/Python-API.md). Chronicle examples: [docs/Chronicle-Python.md](docs/Chronicle-Python.md). HD wallets: [docs/BIP-32.md](docs/BIP-32.md). Local dev: [python/README.md](python/README.md).
50
50
 
51
51
  ## Development
52
52