Commit graph

180 commits

Author SHA1 Message Date
ikripaka
17631653e2
Merge 5ee6b76c69 into merged_master (Bitcoin PR bitcoin/bitcoin#29325) 2026-02-26 20:15:02 +00:00
ivanlele
07fc40d829
Merge e6e4c18a9b into merged_master (Bitcoin PR bitcoin/bitcoin#30162) 2026-02-26 11:14:46 +00:00
ivanlele
bfe084087e
Merge 24572cf768 into merged_master (Bitcoin PR bitcoin/bitcoin#29939) 2026-02-20 10:59:38 +00:00
Tom Trevethan
a1bb0dd675
Added RAW_OP_TRUE miniwallet mode serialization size
(cherry picked from commit 1f13810a73afab07b78d24f3093da6b2cde7e587)
2026-02-12 12:21:33 +02:00
Byron Hambly
474dd0f6f9 Merge 7143d43884 into merged_master (Bitcoin PR bitcoin/bitcoin#28948) 2025-12-03 19:08:52 +00:00
Byron Hambly
1a150831f3
Merge 98b0acda0f into merged_master (Bitcoin PR bitcoin/bitcoin#28725) 2025-11-10 14:40:43 +02:00
Byron Hambly
1c95683b4f
Merge 3966b0a0b6 into merged_master (Bitcoin PR bitcoin/bitcoin#28472) 2025-08-04 09:26:56 +02:00
Byron Hambly
b5fa48988e Merge f1a9fd627b into merged_master (Bitcoin PR bitcoin/bitcoin#28251) 2025-07-21 13:58:00 +02:00
Byron Hambly
36e84e800e Merge 357e3f6aa4 into merged_master (Bitcoin PR bitcoin/bitcoin#28025) 2025-07-01 12:06:50 +02:00
Byron Hambly
ccd960b0f9 Merge 7d65e3372f into merged_master (Bitcoin PR bitcoin/bitcoin#27733) 2025-06-27 21:52:08 +02:00
Byron Hambly
810427867c Merge 3132ec64d9 into merged_master (Bitcoin PR bitcoin/bitcoin#27177) 2025-06-23 11:27:52 +02:00
Byron Hambly
1576f6243d Merge ccc431d53e into merged_master (Bitcoin PR bitcoin/bitcoin#27640) 2025-06-20 21:20:02 +02:00
Byron Hambly
0b1508bf01
ci: fix lint issues 2025-04-17 11:06:32 +02:00
Byron Hambly
a8c15ff245 Merge c0311b1dda into merged_master (Bitcoin PR bitcoin/bitcoin#27349) 2025-04-12 10:10:01 +02:00
Byron Hambly
e048a4bffd Merge 873a5062db into merged_master (Bitcoin PR bitcoin/bitcoin#27269) 2025-04-11 22:20:04 +02:00
Byron Hambly
a40bcf97bd Merge 89fb354f28 into merged_master (Bitcoin PR bitcoin/bitcoin#26625) 2025-04-03 10:33:03 +02:00
Byron Hambly
769260634b Merge 8339f3cea8 into merged_master (Bitcoin PR bitcoin/bitcoin#26886) 2025-04-02 21:57:11 +02:00
Tom Trevethan
15bc30b2c3 Merge 599e941c19 into merged_master (Bitcoin PR bitcoin/bitcoin#26657) 2025-04-02 16:04:31 +00:00
Byron Hambly
b4405ba453 Merge e9262ea32a into merged_master (Bitcoin PR bitcoin/bitcoin#26750) 2025-03-31 16:37:52 +02:00
Byron Hambly
41f380c8f0 Merge bd13d6b369 into merged_master (Bitcoin PR bitcoin/bitcoin#26656) 2025-03-31 10:06:08 +02:00
Byron Hambly
4f17f28214 Merge 38cbf43dee into merged_master (Bitcoin PR bitcoin/bitcoin#26414) 2025-03-05 09:36:38 +02:00
Byron Hambly
3ed5ae03ca Merge 00c323610a into merged_master (Bitcoin PR bitcoin/bitcoin#25986) 2025-03-03 16:38:50 +02:00
Byron Hambly
b11cdfc92b Merge 2c3115d4f5 into merged_master (Bitcoin PR bitcoin/bitcoin#25773) 2024-10-25 12:00:10 +02:00
Byron Hambly
48d663a3d6 Merge 9155f9b7af into merged_master (Bitcoin PR bitcoin/bitcoin#25379) 2024-10-25 09:50:32 +02:00
James Dorfman
9841d576fb Merge 8ef096d4f8 into merged_master (Bitcoin PR bitcoin/bitcoin#25522)
This commit made a lot of changes to test/functional/feature_rbf.py.
That functional test already had each subtest commented out, because
they weren't working properly.

For the most part, I simply accepted the incoming changes, and did not
actually get the functional test to start working.
2024-10-13 06:56:17 +00:00
James Dorfman
7c29c4bcdd Merge c8261026a4 into merged_master (Bitcoin PR bitcoin/bitcoin#25445)
Please double check my changes here -- I had to adjust some units
in test/functional/test_framework/wallet.py.
2024-09-17 18:35:09 +00:00
James Dorfman
fa1a985ef3 Merge 1b71c76886 into merged_master (Bitcoin PR bitcoin/bitcoin#25435) 2024-09-16 04:45:07 +00:00
James Dorfman
b816bdc2f3 Merge b178807265 into merged_master (Bitcoin PR bitcoin/bitcoin#25430) 2024-09-16 03:45:20 +00:00
James Dorfman
7c166369af Merge f8586b25f6 into merged_master (Bitcoin PR bitcoin/bitcoin#25289)
These changes to the functional test framework are pretty simple,
but please verify that I did them correctly. I'm not certain about them.
2024-09-11 16:10:03 +00:00
James Dorfman
63397a752c Merge a55606c3bd into merged_master (Bitcoin PR bitcoin/bitcoin#25356) 2024-09-10 18:37:30 +00:00
James Dorfman
041147b7c6 Merge 506d9b25a3 into merged_master (Bitcoin PR bitcoin/bitcoin#24839)
This required some changes to various helper methods in the python
functional test framework. Please verify those.
2024-09-10 17:49:27 +00:00
James Dorfman
abdd702c0f Merge e282764e04 into merged_master (Bitcoin PR bitcoin/bitcoin#25228) 2024-09-09 19:39:17 +00:00
James Dorfman
fd8fa61417 Merge 1c7ef0abd1 into merged_master (Bitcoin PR bitcoin/bitcoin#25262) 2024-09-06 19:30:23 +00:00
James Dorfman
0d39470585 Merge 9cc010f5a9 into merged_master (Bitcoin PR bitcoin/bitcoin#25087) 2024-09-06 18:49:38 +00:00
James Dorfman
33fdfa36b1 Merge d24318a40c into merged_master (Bitcoin PR bitcoin/bitcoin#24941) 2024-08-08 20:56:06 +00:00
merge-script
5ee6b76c69
Merge bitcoin/bitcoin#29325: consensus: Store transaction nVersion as uint32_t
429ec1aaaa refactor: Rename CTransaction::nVersion to version (Ava Chow)
27e70f1f5b consensus: Store transaction nVersion as uint32_t (Ava Chow)

Pull request description:

  Given that the use of a transaction's nVersion is always as an unsigned int, it doesn't make sense to store it as signed and then cast it to unsigned everywhere it is used and displayed.

  Since a few alternative implementations have recently been revealed to have made an error with this signedness that would have resulted in consensus failure, I think it makes sense for us to just make this always unsigned to make it clear that the version is treated as unsigned. This would also help us avoid future potential issues with signedness of this value.

  I believe that this is safe and does not actually change what transactions would or would not be considered both standard and consensus valid. Within consensus, the only use of the version in consensus is in BIP68 validation which was already casting it to uint32_t. Within policy, although it is used as a signed int for the transaction version number check, I do not think that this change would change standardness. Standard transactions are limited to the range [1, 2]. Negative numbers would have fallen under the < 1 condition, but by making it unsigned, they are still non-standard under the > 2 condition.

  Unsigned and signed ints are serialized and unserialized the same way so there is no change in serialization.

ACKs for top commit:
  maflcko:
    ACK 429ec1aaaa 🐿
  glozow:
    ACK 429ec1aaaa
  shaavan:
    ACK 429ec1aaaa 💯

Tree-SHA512: 0bcd92a245d7d16c3665d2d4e815a4ef28207ad4a1fb46c6f0203cdafeab1b82c4e95e4bdce7805d80a4f4a46074f6542abad708e970550d38a00d759e3dcef1
2024-06-12 10:32:31 +01:00
Ava Chow
429ec1aaaa refactor: Rename CTransaction::nVersion to version
In order to ensure that the change of nVersion to a uint32_t in the
previous commit has no effect, rename nVersion to version in this commit
so that reviewers can easily spot if a spot was missed or if there is a
check somewhere whose semantics have changed.
2024-06-07 13:55:23 -04:00
Sebastian Falbesoner
39d135e79f test: MiniWallet: respect fee_rate for target_weight, use in mempool_limit.py 2024-05-31 00:12:00 +02:00
Sebastian Falbesoner
c17550bc3a test: MiniWallet: fix tx padding (target_weight) for large sizes, improve accuracy 2024-05-31 00:11:55 +02:00
Sebastian Falbesoner
b2037ad4ae test: add MiniWallet tagging support to avoid UTXO mixing
Note that this commit doesn't change behaviour yet, as tagging isn't
used in any MiniWallet instance.
2024-05-05 12:33:34 +02:00
James Dorfman
3a37a8cbb5 Merge 3297f5c11c into merged_master (Bitcoin PR bitcoin/bitcoin#24623) 2024-04-10 16:04:47 +00:00
MarcoFalke
27c8786ba9 test framework: Add and use option for tx-version in MiniWallet methods 2024-02-08 21:50:55 +00:00
James Dorfman
c3629a2443 Merge 864fb89b2f into merged_master (Bitcoin PR bitcoin/bitcoin#24637) 2024-01-17 21:00:59 +00:00
James Dorfman
92481c3833 Merge 8234cdaf62 into merged_master (Bitcoin PR bitcoin/bitcoin#24587) 2024-01-17 01:39:36 +00:00
James Dorfman
aa80572b01 Merge e3206c9445 into merged_master (Bitcoin PR bitcoin/bitcoin#24605)
Please review my changes in test/functional/test_framework/wallet.py.
Confirm that my change of the return value from 1 --> 2 was correct.

That fixed a failing test. I think it's needed because in elements we
have an extra fee output.
2024-01-08 19:45:18 +00:00
Sebastian Falbesoner
d516cf83ed test: use built-in collection types for type hints (Python 3.9 / PEP 585)
Since Python 3.9, type hinting has become a little less awkward, as for
collection types one doesn't need to import the corresponding
capitalized types (`Dict`, `List`, `Set`, `Tuple`, ...) anymore, but can
use the built-in types directly. [1] [2]
This commit applies the replacement for all Python scripts (i.e. in the
contrib and test folders) for the basic types:
    - typing.Dict  -> dict
    - typing.List  -> list
    - typing.Set   -> set
    - typing.Tuple -> tuple

[1] https://docs.python.org/3.9/whatsnew/3.9.html#type-hinting-generics-in-standard-collections
[2] https://peps.python.org/pep-0585/#implementation for a list of type
2023-10-25 01:10:21 +02:00
glozow
d08696120e [test framework] add ability to spend only confirmed utxos
Useful to ensure that the topologies of packages/transactions are as
expected, preventing bugs caused by having unexpected mempool ancestors.
2023-09-13 16:14:18 +01:00
James Dorfman
1c5469b60c
Re-activate assertion which was disabled in the merge of bitcoin/bitcoin#23371 in 2110cca
A subsequent commit appears to have fixed that assertion. It works now.
2023-08-01 10:28:20 +02:00
Sebastian Falbesoner
5cf44275c8 test: refactor: deduplicate legacy ECDSA signing for tx inputs
There are several instances in functional tests and the framework
(MiniWallet, feature_block.py, p2p_segwit.py) where we create a legacy
ECDSA signature for a certain transaction's input by doing the following
steps:
    1) calculate the `LegacySignatureHash` with the desired sighash type
    2) create the actual digital signature by calling `ECKey.sign_ecdsa`
       on the signature message hash calculated above
    3) put the DER-encoded result as CScript data push into
       tx input's scriptSig

Create a new helper `sign_input_legacy` which hides those details and
takes only the necessary parameters (tx, input index, relevant
scriptPubKey, private key, sighash type [SIGHASH_ALL by default]). For
further convenience, the signature is prepended to already existing
data-pushes in scriptSig, in order to avoid rehashing the transaction
after calling the new signing function.
2023-07-03 17:33:41 +02:00
Byron Hambly
c53eb39edf Merge 807169e10b into merged_master (Bitcoin PR bitcoin/bitcoin#24035) 2023-06-20 09:57:58 +00:00