-- 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
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
* context manager for BlockTools
* Missed one usage and fixed up Self import
* Ignore cleanup errors in tempdir cleanup for BlockTools
* Remove debug prints
* Fixed up sync blocktools and use @contextmanager
* Address review comments
* Add return type
* Empty commit for github
* Strange github things
* adjust order of finding ports
* Add context handler features to MempoolManager
* No need to manually shut_down mempoolmanager
* Fix up issues with ordering in full node
* Fix dumb programmer issues
* Fix up some bugbot issues
* Move timing to inside context manager
* fix wrong indent
* increase WEIGHT_PROOF_RECENT_BLOCKS in the test constants, to make it more robust
* improve error message when WEIGHT_PROOF_RECENT_BLOCKS is too small
* fix test_wallet_blockchain.py
* fix test_wallet_node.py
* fix test_wallet_sync.py
* Eliminate rate limits and bans for exempt peer networks
* Add some tests for banning when closing connections
* make sure to pass in parameter to constructor
move test_constants_modified from test_simulation.py into conftest.py to avoid circular dependencies. conftest defines the test chains, which are built using the test constants. test_simulation.py uses the test chains
* Add the request types
* Add the request types
* some test fixes
* Add the client ports
* Fix tests
* Add cmd support and fix a test
* Missed a couple
* Add test for `CreateNewWallet.__post_init__()`