tx-engine 0.7.1__tar.gz → 0.7.2__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 (143) hide show
  1. {tx_engine-0.7.1 → tx_engine-0.7.2}/Cargo.lock +58 -53
  2. {tx_engine-0.7.1 → tx_engine-0.7.2}/Cargo.toml +1 -1
  3. {tx_engine-0.7.1 → tx_engine-0.7.2}/PKG-INFO +1 -1
  4. {tx_engine-0.7.1 → tx_engine-0.7.2}/docs/Development.md +3 -2
  5. {tx_engine-0.7.1 → tx_engine-0.7.2}/docs/Releases.md +2 -1
  6. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tests/test_bsv.py +4 -4
  7. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/engine/op_code_names.py +2 -2
  8. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/engine/op_codes.py +2 -2
  9. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/python/op_code_names.rs +2 -2
  10. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/script/interpreter.rs +17 -2
  11. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/script/mod.rs +4 -0
  12. {tx_engine-0.7.1 → tx_engine-0.7.2}/.github/workflows/CI.yml +0 -0
  13. {tx_engine-0.7.1 → tx_engine-0.7.2}/.github/workflows/on_push.yml +0 -0
  14. {tx_engine-0.7.1 → tx_engine-0.7.2}/.gitignore +0 -0
  15. {tx_engine-0.7.1 → tx_engine-0.7.2}/LICENSE +0 -0
  16. {tx_engine-0.7.1 → tx_engine-0.7.2}/LICENSE-rust-sv +0 -0
  17. {tx_engine-0.7.1 → tx_engine-0.7.2}/README.md +0 -0
  18. {tx_engine-0.7.1 → tx_engine-0.7.2}/docs/README-chain-gang.md +0 -0
  19. {tx_engine-0.7.1 → tx_engine-0.7.2}/docs/Requirements +0 -0
  20. {tx_engine-0.7.1 → tx_engine-0.7.2}/docs/diagrams/keys.png +0 -0
  21. {tx_engine-0.7.1 → tx_engine-0.7.2}/docs/diagrams/keys.puml +0 -0
  22. {tx_engine-0.7.1 → tx_engine-0.7.2}/docs/diagrams/overview.png +0 -0
  23. {tx_engine-0.7.1 → tx_engine-0.7.2}/docs/diagrams/overview.puml +0 -0
  24. {tx_engine-0.7.1 → tx_engine-0.7.2}/docs/diagrams/python_classes.png +0 -0
  25. {tx_engine-0.7.1 → tx_engine-0.7.2}/docs/diagrams/python_classes.puml +0 -0
  26. {tx_engine-0.7.1 → tx_engine-0.7.2}/pyproject.toml +0 -0
  27. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/lint.sh +0 -0
  28. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/requirements.txt +0 -0
  29. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tests/README.md +0 -0
  30. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tests/test_bit_twiddling.py +0 -0
  31. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tests/test_debug.py +0 -0
  32. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tests/test_ec.py +0 -0
  33. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tests/test_fed.py +0 -0
  34. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tests/test_if.py +0 -0
  35. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tests/test_interface.py +0 -0
  36. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tests/test_op.py +0 -0
  37. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tests/test_parse.py +0 -0
  38. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tests/test_script.py +0 -0
  39. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tests/test_sighash.py +0 -0
  40. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tests/test_sign.py +0 -0
  41. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tests/test_tx.py +0 -0
  42. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tests/test_wallet.py +0 -0
  43. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/__init__.py +0 -0
  44. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/engine/__init__.py +0 -0
  45. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/engine/context.py +0 -0
  46. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/engine/cryptography_utils.py +0 -0
  47. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/engine/engine_types.py +0 -0
  48. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/engine/util.py +0 -0
  49. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/interface/__init__.py +0 -0
  50. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/interface/blockchain_interface.py +0 -0
  51. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/interface/interface_factory.py +0 -0
  52. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/interface/mock_interface.py +0 -0
  53. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/interface/rpc_interface.py +0 -0
  54. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/interface/verify_script.py +0 -0
  55. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/interface/woc.py +0 -0
  56. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/interface/woc_interface.py +0 -0
  57. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/tx/__init__.py +0 -0
  58. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/src/tx_engine/tx/sighash.py +0 -0
  59. {tx_engine-0.7.1 → tx_engine-0.7.2}/python/tests.sh +0 -0
  60. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/address/mod.rs +0 -0
  61. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/interface/blockchain_interface.rs +0 -0
  62. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/interface/mod.rs +0 -0
  63. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/interface/test_interface.rs +0 -0
  64. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/interface/uaas_interface.rs +0 -0
  65. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/interface/woc_interface.rs +0 -0
  66. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/lib.rs +0 -0
  67. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/addr.rs +0 -0
  68. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/authch.rs +0 -0
  69. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/block.rs +0 -0
  70. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/block_header.rs +0 -0
  71. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/block_locator.rs +0 -0
  72. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/blocktxn.rs +0 -0
  73. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/cmpctblock.rs +0 -0
  74. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/createstrm.rs +0 -0
  75. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/fee_filter.rs +0 -0
  76. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/filter_add.rs +0 -0
  77. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/filter_load.rs +0 -0
  78. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/getblocktxn.rs +0 -0
  79. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/headers.rs +0 -0
  80. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/inv.rs +0 -0
  81. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/inv_vect.rs +0 -0
  82. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/merkle_block.rs +0 -0
  83. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/message.rs +0 -0
  84. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/message_header.rs +0 -0
  85. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/mod.rs +0 -0
  86. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/node_addr.rs +0 -0
  87. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/node_addr_ex.rs +0 -0
  88. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/out_point.rs +0 -0
  89. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/ping.rs +0 -0
  90. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/protoconf.rs +0 -0
  91. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/reject.rs +0 -0
  92. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/send_cmpct.rs +0 -0
  93. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/streamack.rs +0 -0
  94. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/tx.rs +0 -0
  95. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/tx_in.rs +0 -0
  96. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/tx_out.rs +0 -0
  97. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/messages/version.rs +0 -0
  98. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/network/mod.rs +0 -0
  99. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/network/network.rs +0 -0
  100. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/network/seed_iter.rs +0 -0
  101. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/peer/atomic_reader.rs +0 -0
  102. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/peer/mod.rs +0 -0
  103. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/peer/peer.rs +0 -0
  104. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/python/mod.rs +0 -0
  105. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/python/py_script.rs +0 -0
  106. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/python/py_stack.rs +0 -0
  107. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/python/py_tx.rs +0 -0
  108. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/python/py_wallet.rs +0 -0
  109. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/script/checker.rs +0 -0
  110. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/script/op_codes.rs +4 -4
  111. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/script/stack.rs +0 -0
  112. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/transaction/mod.rs +0 -0
  113. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/transaction/p2pkh.rs +0 -0
  114. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/transaction/sighash.rs +0 -0
  115. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/util/bits.rs +0 -0
  116. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/util/bloom_filter.rs +0 -0
  117. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/util/errors.rs +0 -0
  118. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/util/future.rs +0 -0
  119. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/util/hash160.rs +0 -0
  120. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/util/hash256.rs +0 -0
  121. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/util/latch.rs +0 -0
  122. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/util/mod.rs +0 -0
  123. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/util/rx.rs +0 -0
  124. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/util/serdes.rs +0 -0
  125. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/util/sha1.rs +0 -0
  126. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/util/sha256.rs +0 -0
  127. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/util/var_int.rs +0 -0
  128. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/wallet/base58_checksum.rs +0 -0
  129. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/wallet/extended_key.rs +0 -0
  130. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/wallet/mnemonic.rs +0 -0
  131. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/wallet/mod.rs +0 -0
  132. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/wallet/wallet.rs +0 -0
  133. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/wallet/wordlists/chinese_simplified.txt +0 -0
  134. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/wallet/wordlists/chinese_traditional.txt +0 -0
  135. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/wallet/wordlists/english.txt +0 -0
  136. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/wallet/wordlists/french.txt +0 -0
  137. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/wallet/wordlists/italian.txt +0 -0
  138. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/wallet/wordlists/japanese.txt +0 -0
  139. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/wallet/wordlists/korean.txt +0 -0
  140. {tx_engine-0.7.1 → tx_engine-0.7.2}/src/wallet/wordlists/spanish.txt +0 -0
  141. {tx_engine-0.7.1 → tx_engine-0.7.2}/tools/README.md +0 -0
  142. {tx_engine-0.7.1 → tx_engine-0.7.2}/tools/dbg.py +0 -0
  143. {tx_engine-0.7.1 → tx_engine-0.7.2}/tools/generate_key.py +0 -0
@@ -37,9 +37,9 @@ dependencies = [
37
37
 
38
38
  [[package]]
39
39
  name = "async-trait"
40
- version = "0.1.87"
40
+ version = "0.1.88"
41
41
  source = "registry+https://github.com/rust-lang/crates.io-index"
42
- checksum = "d556ec1359574147ec0c4fc5eb525f3f23263a592b1a9c07e0a75b427de55c97"
42
+ checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5"
43
43
  dependencies = [
44
44
  "proc-macro2",
45
45
  "quote",
@@ -93,9 +93,9 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
93
93
 
94
94
  [[package]]
95
95
  name = "base64ct"
96
- version = "1.7.1"
96
+ version = "1.7.3"
97
97
  source = "registry+https://github.com/rust-lang/crates.io-index"
98
- checksum = "bb97d56060ee67d285efb8001fec9d2a4c710c32efd2e14b5cbb5ba71930fc2d"
98
+ checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3"
99
99
 
100
100
  [[package]]
101
101
  name = "bitflags"
@@ -132,9 +132,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
132
132
 
133
133
  [[package]]
134
134
  name = "cc"
135
- version = "1.2.16"
135
+ version = "1.2.17"
136
136
  source = "registry+https://github.com/rust-lang/crates.io-index"
137
- checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c"
137
+ checksum = "1fcb57c740ae1daf453ae85f16e37396f672b039e00d9d866e07ddb24e328e3a"
138
138
  dependencies = [
139
139
  "shlex",
140
140
  ]
@@ -147,7 +147,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
147
147
 
148
148
  [[package]]
149
149
  name = "chain-gang"
150
- version = "0.7.1"
150
+ version = "0.7.2"
151
151
  dependencies = [
152
152
  "async-mutex",
153
153
  "async-trait",
@@ -458,14 +458,14 @@ dependencies = [
458
458
 
459
459
  [[package]]
460
460
  name = "getrandom"
461
- version = "0.3.1"
461
+ version = "0.3.2"
462
462
  source = "registry+https://github.com/rust-lang/crates.io-index"
463
- checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8"
463
+ checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0"
464
464
  dependencies = [
465
465
  "cfg-if",
466
466
  "libc",
467
- "wasi 0.13.3+wasi-0.2.2",
468
- "windows-targets 0.52.6",
467
+ "r-efi",
468
+ "wasi 0.14.2+wasi-0.2.4",
469
469
  ]
470
470
 
471
471
  [[package]]
@@ -684,9 +684,9 @@ dependencies = [
684
684
 
685
685
  [[package]]
686
686
  name = "icu_locid_transform_data"
687
- version = "1.5.0"
687
+ version = "1.5.1"
688
688
  source = "registry+https://github.com/rust-lang/crates.io-index"
689
- checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e"
689
+ checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d"
690
690
 
691
691
  [[package]]
692
692
  name = "icu_normalizer"
@@ -708,9 +708,9 @@ dependencies = [
708
708
 
709
709
  [[package]]
710
710
  name = "icu_normalizer_data"
711
- version = "1.5.0"
711
+ version = "1.5.1"
712
712
  source = "registry+https://github.com/rust-lang/crates.io-index"
713
- checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516"
713
+ checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7"
714
714
 
715
715
  [[package]]
716
716
  name = "icu_properties"
@@ -729,9 +729,9 @@ dependencies = [
729
729
 
730
730
  [[package]]
731
731
  name = "icu_properties_data"
732
- version = "1.5.0"
732
+ version = "1.5.1"
733
733
  source = "registry+https://github.com/rust-lang/crates.io-index"
734
- checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569"
734
+ checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2"
735
735
 
736
736
  [[package]]
737
737
  name = "icu_provider"
@@ -854,9 +854,9 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
854
854
 
855
855
  [[package]]
856
856
  name = "linux-raw-sys"
857
- version = "0.9.2"
857
+ version = "0.9.3"
858
858
  source = "registry+https://github.com/rust-lang/crates.io-index"
859
- checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9"
859
+ checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413"
860
860
 
861
861
  [[package]]
862
862
  name = "litemap"
@@ -866,9 +866,9 @@ checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856"
866
866
 
867
867
  [[package]]
868
868
  name = "log"
869
- version = "0.4.26"
869
+ version = "0.4.27"
870
870
  source = "registry+https://github.com/rust-lang/crates.io-index"
871
- checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e"
871
+ checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94"
872
872
 
873
873
  [[package]]
874
874
  name = "memchr"
@@ -973,9 +973,9 @@ dependencies = [
973
973
 
974
974
  [[package]]
975
975
  name = "once_cell"
976
- version = "1.21.0"
976
+ version = "1.21.3"
977
977
  source = "registry+https://github.com/rust-lang/crates.io-index"
978
- checksum = "cde51589ab56b20a6f686b2c68f7a0bd6add753d697abf720d63f8db3ab7b1ad"
978
+ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
979
979
 
980
980
  [[package]]
981
981
  name = "openssl"
@@ -1161,6 +1161,12 @@ dependencies = [
1161
1161
  "proc-macro2",
1162
1162
  ]
1163
1163
 
1164
+ [[package]]
1165
+ name = "r-efi"
1166
+ version = "5.2.0"
1167
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1168
+ checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5"
1169
+
1164
1170
  [[package]]
1165
1171
  name = "rand"
1166
1172
  version = "0.8.5"
@@ -1228,9 +1234,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
1228
1234
 
1229
1235
  [[package]]
1230
1236
  name = "reqwest"
1231
- version = "0.12.14"
1237
+ version = "0.12.15"
1232
1238
  source = "registry+https://github.com/rust-lang/crates.io-index"
1233
- checksum = "989e327e510263980e231de548a33e63d34962d29ae61b467389a1a09627a254"
1239
+ checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb"
1234
1240
  dependencies = [
1235
1241
  "base64",
1236
1242
  "bytes",
@@ -1311,9 +1317,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
1311
1317
 
1312
1318
  [[package]]
1313
1319
  name = "rustix"
1314
- version = "1.0.2"
1320
+ version = "1.0.3"
1315
1321
  source = "registry+https://github.com/rust-lang/crates.io-index"
1316
- checksum = "f7178faa4b75a30e269c71e61c353ce2748cf3d76f0c44c393f4e60abf49b825"
1322
+ checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96"
1317
1323
  dependencies = [
1318
1324
  "bitflags",
1319
1325
  "errno",
@@ -1324,9 +1330,9 @@ dependencies = [
1324
1330
 
1325
1331
  [[package]]
1326
1332
  name = "rustls"
1327
- version = "0.23.23"
1333
+ version = "0.23.25"
1328
1334
  source = "registry+https://github.com/rust-lang/crates.io-index"
1329
- checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395"
1335
+ checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c"
1330
1336
  dependencies = [
1331
1337
  "once_cell",
1332
1338
  "rustls-pki-types",
@@ -1352,9 +1358,9 @@ checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c"
1352
1358
 
1353
1359
  [[package]]
1354
1360
  name = "rustls-webpki"
1355
- version = "0.102.8"
1361
+ version = "0.103.1"
1356
1362
  source = "registry+https://github.com/rust-lang/crates.io-index"
1357
- checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9"
1363
+ checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03"
1358
1364
  dependencies = [
1359
1365
  "ring",
1360
1366
  "rustls-pki-types",
@@ -1524,9 +1530,9 @@ checksum = "27207bb65232eda1f588cf46db2fee75c0808d557f6b3cf19a75f5d6d7c94df1"
1524
1530
 
1525
1531
  [[package]]
1526
1532
  name = "socket2"
1527
- version = "0.5.8"
1533
+ version = "0.5.9"
1528
1534
  source = "registry+https://github.com/rust-lang/crates.io-index"
1529
- checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8"
1535
+ checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef"
1530
1536
  dependencies = [
1531
1537
  "libc",
1532
1538
  "windows-sys 0.52.0",
@@ -1614,13 +1620,12 @@ checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a"
1614
1620
 
1615
1621
  [[package]]
1616
1622
  name = "tempfile"
1617
- version = "3.18.0"
1623
+ version = "3.19.1"
1618
1624
  source = "registry+https://github.com/rust-lang/crates.io-index"
1619
- checksum = "2c317e0a526ee6120d8dabad239c8dadca62b24b6f168914bbbc8e2fb1f0e567"
1625
+ checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf"
1620
1626
  dependencies = [
1621
- "cfg-if",
1622
1627
  "fastrand",
1623
- "getrandom 0.3.1",
1628
+ "getrandom 0.3.2",
1624
1629
  "once_cell",
1625
1630
  "rustix",
1626
1631
  "windows-sys 0.59.0",
@@ -1658,9 +1663,9 @@ dependencies = [
1658
1663
 
1659
1664
  [[package]]
1660
1665
  name = "tokio"
1661
- version = "1.44.0"
1666
+ version = "1.44.1"
1662
1667
  source = "registry+https://github.com/rust-lang/crates.io-index"
1663
- checksum = "9975ea0f48b5aa3972bf2d888c238182458437cc2a19374b81b25cdf1023fb3a"
1668
+ checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a"
1664
1669
  dependencies = [
1665
1670
  "backtrace",
1666
1671
  "bytes",
@@ -1693,9 +1698,9 @@ dependencies = [
1693
1698
 
1694
1699
  [[package]]
1695
1700
  name = "tokio-util"
1696
- version = "0.7.13"
1701
+ version = "0.7.14"
1697
1702
  source = "registry+https://github.com/rust-lang/crates.io-index"
1698
- checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078"
1703
+ checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034"
1699
1704
  dependencies = [
1700
1705
  "bytes",
1701
1706
  "futures-core",
@@ -1832,9 +1837,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
1832
1837
 
1833
1838
  [[package]]
1834
1839
  name = "wasi"
1835
- version = "0.13.3+wasi-0.2.2"
1840
+ version = "0.14.2+wasi-0.2.4"
1836
1841
  source = "registry+https://github.com/rust-lang/crates.io-index"
1837
- checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2"
1842
+ checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3"
1838
1843
  dependencies = [
1839
1844
  "wit-bindgen-rt",
1840
1845
  ]
@@ -1922,9 +1927,9 @@ dependencies = [
1922
1927
 
1923
1928
  [[package]]
1924
1929
  name = "windows-link"
1925
- version = "0.1.0"
1930
+ version = "0.1.1"
1926
1931
  source = "registry+https://github.com/rust-lang/crates.io-index"
1927
- checksum = "6dccfd733ce2b1753b03b6d3c65edf020262ea35e20ccdf3e288043e6dd620e3"
1932
+ checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38"
1928
1933
 
1929
1934
  [[package]]
1930
1935
  name = "windows-registry"
@@ -1939,9 +1944,9 @@ dependencies = [
1939
1944
 
1940
1945
  [[package]]
1941
1946
  name = "windows-result"
1942
- version = "0.3.1"
1947
+ version = "0.3.2"
1943
1948
  source = "registry+https://github.com/rust-lang/crates.io-index"
1944
- checksum = "06374efe858fab7e4f881500e6e86ec8bc28f9462c47e5a9941a0142ad86b189"
1949
+ checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252"
1945
1950
  dependencies = [
1946
1951
  "windows-link",
1947
1952
  ]
@@ -2169,9 +2174,9 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486"
2169
2174
 
2170
2175
  [[package]]
2171
2176
  name = "wit-bindgen-rt"
2172
- version = "0.33.0"
2177
+ version = "0.39.0"
2173
2178
  source = "registry+https://github.com/rust-lang/crates.io-index"
2174
- checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c"
2179
+ checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1"
2175
2180
  dependencies = [
2176
2181
  "bitflags",
2177
2182
  ]
@@ -2214,18 +2219,18 @@ dependencies = [
2214
2219
 
2215
2220
  [[package]]
2216
2221
  name = "zerocopy"
2217
- version = "0.8.23"
2222
+ version = "0.8.24"
2218
2223
  source = "registry+https://github.com/rust-lang/crates.io-index"
2219
- checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6"
2224
+ checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879"
2220
2225
  dependencies = [
2221
2226
  "zerocopy-derive",
2222
2227
  ]
2223
2228
 
2224
2229
  [[package]]
2225
2230
  name = "zerocopy-derive"
2226
- version = "0.8.23"
2231
+ version = "0.8.24"
2227
2232
  source = "registry+https://github.com/rust-lang/crates.io-index"
2228
- checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154"
2233
+ checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be"
2229
2234
  dependencies = [
2230
2235
  "proc-macro2",
2231
2236
  "quote",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "chain-gang"
3
- version = "0.7.1"
3
+ version = "0.7.2"
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>"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tx_engine
3
- Version: 0.7.1
3
+ Version: 0.7.2
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -99,8 +99,9 @@ https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-e
99
99
  # Github & PyPi
100
100
 
101
101
  To force a release the git version needs to be tagged.
102
- 1) Update `cargo.toml` version
103
- 2) push code up to repo. Otherwise GitHub won't figure out that the software has been updated.
102
+ 1) Update `cargo.toml` version
103
+ 2) Update `Releases.md` file
104
+ 3) push code up to repo. Otherwise GitHub won't figure out that the software has been updated.
104
105
  4) Update git `tag` and push. Otherwise the GitHub action `release` will not be triggered.
105
106
 
106
107
  ```bash
@@ -45,4 +45,5 @@
45
45
  * v0.6.14 - Try again - remove platforms that did not read env vars
46
46
  * v0.6.15 - Try again - remove two more platforms that did not read env vars
47
47
  * v0.7.0 - Bump version for Python 3.13 support
48
- * v0.7.1 - Bump version for _checksig_index functions
48
+ * v0.7.1 - Fixed OP_CODESEPARATOR
49
+ * v0.7.2 - Added OP_2MUL and OP_2DIV script operations
@@ -140,16 +140,16 @@ class BSVTests(unittest.TestCase):
140
140
  """
141
141
  script = Script([OP_16, OP_2MUL])
142
142
  context = Context(script=script)
143
- # False as disabled in intepreter
144
- self.assertFalse(context.evaluate_core(quiet=True))
143
+ self.assertTrue(context.evaluate_core())
144
+ self.assertEqual(context.get_stack(), Stack([[32]]))
145
145
 
146
146
  def test_2div(self):
147
147
  """ Simple check of 2DIV
148
148
  """
149
149
  script = Script([OP_16, OP_2DIV])
150
150
  context = Context(script=script)
151
- # False as disabled in intepreter
152
- self.assertFalse(context.evaluate_core(quiet=True))
151
+ self.assertTrue(context.evaluate_core())
152
+ self.assertEqual(context.get_stack(), Stack([[8]]))
153
153
 
154
154
  def test_mod(self):
155
155
  """ Simple check of MOD
@@ -69,8 +69,8 @@ OP_CODE_NAMES: Dict[int, str] = {
69
69
  138: "OP_RESERVED2",
70
70
  139: "OP_1ADD",
71
71
  140: "OP_1SUB",
72
- 141: "OP_2MUL", # disabled
73
- 142: "OP_2DIV", # disabled
72
+ 141: "OP_2MUL",
73
+ 142: "OP_2DIV",
74
74
  143: "OP_NEGATE",
75
75
  144: "OP_ABS",
76
76
  145: "OP_NOT",
@@ -83,8 +83,8 @@ OP_RESERVED2: Final = 0x8A
83
83
  # Artithmetic
84
84
  OP_1ADD: Final = 0x8B
85
85
  OP_1SUB: Final = 0x8C
86
- OP_2MUL: Final = 0x8D # Disabled
87
- OP_2DIV: Final = 0x8E # Disabled
86
+ OP_2MUL: Final = 0x8D
87
+ OP_2DIV: Final = 0x8E
88
88
  OP_NEGATE: Final = 0x8F
89
89
  OP_ABS: Final = 0x90
90
90
  OP_NOT: Final = 0x91
@@ -83,8 +83,8 @@ lazy_static! {
83
83
  ("OP_1ADD", 139),
84
84
  ("OP_1SUB", 140),
85
85
 
86
- ("OP_2MUL", 141), // Disabled
87
- ("OP_2DIV", 142), // Disabled
86
+ ("OP_2MUL", 141),
87
+ ("OP_2DIV", 142),
88
88
 
89
89
  ("OP_NEGATE", 143),
90
90
  ("OP_ABS", 144),
@@ -429,6 +429,12 @@ pub fn core_eval<T: Checker>(
429
429
  let product = a * b;
430
430
  stack.push(encode_bigint(product));
431
431
  }
432
+ OP_2MUL => {
433
+ let a = pop_bigint(&mut stack)?;
434
+ let two = BigInt::from(2);
435
+ let product = a * two;
436
+ stack.push(encode_bigint(product));
437
+ }
432
438
  OP_DIV => {
433
439
  let b = pop_bigint(&mut stack)?;
434
440
  let a = pop_bigint(&mut stack)?;
@@ -439,6 +445,13 @@ pub fn core_eval<T: Checker>(
439
445
  let quotient = a / b;
440
446
  stack.push(encode_bigint(quotient));
441
447
  }
448
+ OP_2DIV => {
449
+ let a = pop_bigint(&mut stack)?;
450
+ let b = BigInt::from(2);
451
+
452
+ let quotient = a / b;
453
+ stack.push(encode_bigint(quotient));
454
+ }
442
455
  OP_MOD => {
443
456
  let b = pop_bigint(&mut stack)?;
444
457
  let a = pop_bigint(&mut stack)?;
@@ -1069,9 +1082,11 @@ mod tests {
1069
1082
  OP_MUL,
1070
1083
  ]);
1071
1084
  pass(&[OP_1, OP_1NEGATE, OP_MUL, OP_1NEGATE, OP_EQUAL]);
1085
+ pass(&[OP_5, OP_2MUL, OP_10, OP_EQUAL]);
1072
1086
  pass(&[OP_1, OP_1, OP_DIV, OP_1, OP_EQUAL]);
1073
1087
  pass(&[OP_5, OP_2, OP_DIV, OP_2, OP_EQUAL]);
1074
1088
  pass(&[OP_2, OP_1NEGATE, OP_DIV, OP_PUSH + 1, 130, OP_EQUAL]);
1089
+ pass(&[OP_5, OP_2DIV, OP_2, OP_EQUAL]);
1075
1090
  pass(&[OP_1, OP_1, OP_MOD, OP_0, OP_EQUAL]);
1076
1091
  pass(&[OP_5, OP_2, OP_MOD, OP_1, OP_EQUAL]);
1077
1092
  pass(&[OP_5, OP_PUSH + 1, 130, OP_MOD, OP_1, OP_EQUAL]);
@@ -1327,7 +1342,9 @@ mod tests {
1327
1342
  fail(&[OP_PUSH + 5, 0, 0, 0, 0, 0, OP_MUL]);
1328
1343
  fail(&[OP_PUSH + 2, 0, 0, OP_PUSH + 2, 0, 0, OP_MUL]);
1329
1344
  fail(&[OP_DIV]);
1345
+ fail(&[OP_2MUL]);
1330
1346
  fail(&[OP_1, OP_DIV]);
1347
+ fail(&[OP_2DIV]);
1331
1348
  fail(&[OP_PUSH + 5, 0, 0, 0, 0, 0, OP_DIV]);
1332
1349
  fail(&[OP_1, OP_0, OP_DIV]);
1333
1350
  fail(&[OP_MOD]);
@@ -1446,8 +1463,6 @@ mod tests {
1446
1463
  fail(&[OP_RESERVED1, OP_1]);
1447
1464
  fail(&[OP_RESERVED2, OP_1]);
1448
1465
  fail(&[OP_INVERT, OP_1]);
1449
- fail(&[OP_2MUL, OP_1]);
1450
- fail(&[OP_2DIV, OP_1]);
1451
1466
  fail(&[OP_MUL, OP_1]);
1452
1467
  fail(&[OP_LSHIFT, OP_1]);
1453
1468
  fail(&[OP_RSHIFT, OP_1]);
@@ -269,7 +269,9 @@ impl Script {
269
269
  OP_ADD => ret.push_str("OP_ADD"),
270
270
  OP_SUB => ret.push_str("OP_SUB"),
271
271
  OP_MUL => ret.push_str("OP_MUL"),
272
+ OP_2MUL => ret.push_str("OP_2MUL"),
272
273
  OP_DIV => ret.push_str("OP_DIV"),
274
+ OP_2DIV => ret.push_str("OP_2DIV"),
273
275
  OP_MOD => ret.push_str("OP_MOD"),
274
276
 
275
277
  OP_BOOLAND => ret.push_str("OP_BOOLAND"),
@@ -439,7 +441,9 @@ impl fmt::Debug for Script {
439
441
  OP_ADD => ret.push_str("OP_ADD"),
440
442
  OP_SUB => ret.push_str("OP_SUB"),
441
443
  OP_MUL => ret.push_str("OP_MUL"),
444
+ OP_2MUL => ret.push_str("OP_2MUL"),
442
445
  OP_DIV => ret.push_str("OP_DIV"),
446
+ OP_2DIV => ret.push_str("OP_2DIV"),
443
447
  OP_MOD => ret.push_str("OP_MOD"),
444
448
 
445
449
  OP_BOOLAND => ret.push_str("OP_BOOLAND"),
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -169,8 +169,12 @@ pub const OP_ADD: u8 = 147;
169
169
  pub const OP_SUB: u8 = 148;
170
170
  /// Multiplies a by b
171
171
  pub(crate) const OP_MUL: u8 = 149;
172
+ /// The input is multiplied by 2
173
+ pub(crate) const OP_2MUL: u8 = 141;
172
174
  /// Divides a by b
173
175
  pub const OP_DIV: u8 = 150;
176
+ /// The input is divided by 2
177
+ pub(crate) const OP_2DIV: u8 = 142;
174
178
  /// Returns the remainder after dividing a by b
175
179
  pub const OP_MOD: u8 = 151;
176
180
  /// Shifts a left b bits, preserving sign
@@ -291,7 +295,3 @@ pub(crate) const OP_INVALID_ABOVE: u8 = 186;
291
295
  // Disabled words
292
296
  // --------------------------------------------------------------------------------------------
293
297
 
294
- /// The input is multiplied by 2
295
- pub(crate) const OP_2MUL: u8 = 141;
296
- /// The input is divided by 2
297
- pub(crate) const OP_2DIV: u8 = 142;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes