-- rename structuredError.structuredMessage to message
-- remove the legacy 'message' field from structuredError.data, allow the top level 'error' string to preserve that for us.
-- remove the 'originalError' field from structuredError
-- rename structured_errors to rpc_errors
* Initial draft of custody architecture
* Rename CustodyType -> Puzzle
* Rename UnknownCustody -> UnknownPuzzle
* Rename CustodyHint -> PuzzleHint
* Rename CustodyWithRestrictions -> PuzzleWithRestrictions
* Reorganize for clarity
* Add support for identifying and filling in unknown puzzles
* rename custody -> puzzle
* MofN puzzles
* Restriction layer
* Fix PlaceholderPuzzle with MofN restriction
* Add indexing
* Elaborate on potential optimizations
* Light comment improvements
* Add spec namespace
* 3.10 compatibility I think?
* pylint I hate you
* pylint I really hate you
* Add an optimized puzzle for 1ofN
* Coverage ignores
* Add optimization for NofN
* Add support for `PuzzleWithRestrictions` with no MofN
* comments
* Fix members with restrictions inside of MofNs
* pylint
* Rework restrictions
* Use feeder pattern for MofNs as well
* f you pylint
* initial commit
* start work on tests
* fix all but signature in test
* fix test
* black, isort, flake8
* migrate changes to new files / folders
* mypy fixes
* remove unused imports
* add bls_member to deployed_puzzle_hashes
* no memo for BLS Member
* change comments on BLSMember
* chialispp bls_member
* update test comment
* black again
* pylint disable
* add a more minimal test for blsmember
* fix quex comments
* flake8
* Add basic framework for delegated puzzle validators
* code coverage for memo()
* don't reuse variable of different type
* coverage
* pre-commit
* pre-commit
* Fix spend sim import
* Add passkey member puzzle
* Dedup a bit
* Add `Timelock` restriction
* Rename variable
* Add coin announcement restriction
* initial commit
* Add comments per @matt-o-how
* typo
* correct formatting for using secp_verify
* secp256r1 fix
* pretty print lisp
* add to deployed puzzle hashes
* ruff formatted
* Add a restriction to mimic existing vault recovery
* Add a helper method
* initial commit
* fix test
* fix_test_2
* ruff format
* add secp256k1_member to deployed puzzle hashes
* pretty print lisp
* ruff check fix.
* curve_order fix
* ruff format
* Add memo-ization to the restriction
* add assertion for secpr1_member memo in test_secp256r1_member
* add assertion for secpk1_member memo in test_secp256k1_member
* add secpmember solve method
* - specify type for secp_sk in member puzzles
* add SECPK1 and SECPR1 "puzzle assert" members with corresponding tests
* Fix bug and add test coverage to dpuz wrapper enforcement puzzle
* Fix bug and add test coverage to timelock puzzle
* pre-commit
* initial commit
* Add dataclass for SingletonMember in member_puzzles.py
* fix message coin_ids
* rename eve to launcher
* add minimal message condition test
* change message mode to 3F
* use correct message format
* fix test
* cleanup
* fix formatting in singleton_member.clsp
* Add files for test chialisp
* Add a wrapper that forces a message condition with a coin ID commitment
* Add a version of a passkey puzzle that only asserts puzzle hash
* add comments, remove unused code, add customisable singleton info
* initial commit
* fix typo and pprint chialisp
* chialisp pretty print
* Add comment about message
* add bls_with_taproot puzzle and member class
* mypy fixes
* more mypy fixes
* remove breakpoint
* correct name in deployed_puzzle_hashes
* remove mod from name
* only allowed delegated_puzzle as taproot_path
* add test that checks bad taproot is blocked
* ruff fix
* make BLSWithTaproot Member flexible
* address nitpicks
* mypy fixes
* Remove member and restriction implementations
* Import from chia_puzzles_py (and fix tests)
* Remove executable bibt?
* Re-add some of the member and restrictions
* Some kw_only
* More kw_only
* Reviews by @matt-o-how and cursor
* Comments by cursor
* Remove `Force1of2WithRestrictedVariable`
* Bring in some downstream stuff
* Make a heightlock instead of timelock restriction
* comments by cursor
* Test coverage
* Better condition_codes.clib-ing
* comments by @matt-o-how
---------
Co-authored-by: Matthew Howard <m.o.howard97@gmail.com>
Co-authored-by: matt-o-how <48453825+matt-o-how@users.noreply.github.com>
* update the fast FullBlock parser (that just skips fields) to support the new serialization of RewardChainBlock
* add test and shard the test, to enable it running in parallel
* disable expensive tests on MacOS Intel
* document some aspects of the full_blocks_utils test
Source hash: 4e36460622
Remaining commits: 1
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Medium Risk**
> Touches consensus-critical validation inputs (pre-SP tx height /
generator flags), which can affect block acceptance around overflow
blocks and the HF2 transition window. Changes are localized and covered
by new tests, but correctness is important for fork safety.
>
> **Overview**
> Adjusts `pre_sp_tx_block(_height)` to use `finished_sub_slots` (and
overflow-aware slot-crossing logic) instead of a boolean, fixing
selection of the latest transaction block before a block’s signage
point.
>
> Adds `full_node/hard_fork_utils.get_flags()` to compute CLVM/generator
`flags` during the HF2 transition period by walking back to the
appropriate pre-SP transaction block, and updates full node API/RPC
paths to use this helper when deriving spends, coin solutions, and
additions/removals.
>
> Updates all call sites and tests accordingly, and adds new tests
validating `get_flags` behavior inside and outside the HF2 transition
window.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
301fa2c143. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
Source hash: a19365ac4e
Remaining commits: 4
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> Ensures serialization honors subclass-defined field order and
preserves backward compatibility for wallet conditions.
>
> - `Streamable.parse` and `stream` now iterate over
`streamable_fields()` instead of `_streamable_fields`, allowing
subclasses to override field order
> - `ConditionValidTimes` adds a `streamable_fields()` override to
serialize fields in the previous (pre-inheritance) order; import updated
to include `StreamableFields`
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
f36001ef9f. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
PR #20401.
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> Implements peer-aware transaction submission with prioritization and
proper back-pressure handling.
>
> - Change `send_transaction` to `send_transaction(request, peer, *,
test=False)` with `peer_required=True` in API metadata
> - Prioritize trusted peers when enqueueing; include `peer_id` in queue
put; catch `TransactionQueueFull` and return `TransactionAck` with
FAILED and "Transaction queue full"
> - Update stubs and numerous tests/helpers to pass a `WSChiaConnection`
peer (e.g., use `add_dummy_connection[_wsc]`/`connect_and_get_peer`);
adjust helper signatures to accept `peer`
> - Add test to verify correct `TransactionAck` when a peer's
transaction queue is full
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
ba926a6ae7. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
* Fixes to test_long_sync_untrusted_break
* Address bugbot comments re ip address string
* Remove commented out debug code
* Apply suggestions from bugbot