Commit Graph
5861 Commits
Author SHA1 Message Date
Jude Allred 274c5a8ae4 Tidy rpc_errors.py and remove the (as-yet) unused error codes 2026-02-11 14:22:35 -05:00
Jude Allred 5ad6fbb39a Condense tests 2026-02-11 14:10:30 -05:00
Jude Allred 9b40409e86 Narrow PR to only provide structured logs for full_node_rpc_api 2026-02-11 14:09:35 -05:00
Jude Allred c69cb281c4 Test coverage touchups 2026-02-11 13:41:02 -05:00
Jude Allred 05d8276921 Dead code elimination 2026-02-11 13:41:01 -05:00
Jude Allred e128765425 Add code coverage for all RPC errors 2026-02-11 13:41:01 -05:00
Jude Allred 323f8a8c46 Bug Fix: We must check that self.service is defined _before_ we access its properties. 2026-02-11 13:41:01 -05:00
Jude Allred a75e591f7e Use RpcError.simple everywhere we can 2026-02-11 13:41:01 -05:00
Jude Allred 85fc7e329a Add tests entirely for the purpose of increasing code coverage 2026-02-11 13:41:01 -05:00
Jude Allred 8e885142b8 Tidy extraneous changes 2026-02-11 13:41:01 -05:00
Jude Allred 8dae5eb20f Update a test funnction name 2026-02-11 13:41:01 -05:00
Jude Allred 28ad73bb80 PR iterations -- Tidy structured error type.
-- 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
2026-02-11 13:41:00 -05:00
Jude Allred 4db6e4e954 Test repair 2026-02-11 13:41:00 -05:00
Jude Allred abe4bb3b21 Add a missing structured error in a location introduced during rebase 2026-02-11 13:41:00 -05:00
Jude Allred b196d4f2ab Handle an empty error message edge case 2026-02-11 13:41:00 -05:00
Jude Allred 8f11d892ff Use structured RPC errors 2026-02-11 13:40:56 -05:00
aa770ba5af [LABS-361] MIPS Python Drivers (#18686)
* 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>
2026-02-11 10:29:11 -08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Earle Lowe
0a818825bc build(deps): bump mypy from 1.18.2 to 1.19.1 (#20363)
* build(deps): bump mypy from 1.18.2 to 1.19.1

Bumps [mypy](https://github.com/python/mypy) from 1.18.2 to 1.19.1.
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v1.18.2...v1.19.1)

---
updated-dependencies:
- dependency-name: mypy
  dependency-version: 1.19.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* mypy fixes

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Earle Lowe <e.lowe@chia.net>
2026-02-10 11:01:32 -08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Earle Lowe
452cbf890d build(deps): bump ruff from 0.14.6 to 0.14.13 (#20439)
* build(deps): bump ruff from 0.14.6 to 0.14.13

Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.6 to 0.14.13.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.14.6...0.14.13)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.14.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* ruff fixes

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Earle Lowe <e.lowe@chia.net>
2026-02-10 11:01:17 -08:00
Arvid NorbergandGitHub 507a2b858d update the fast FullBlock parser (#20458)
* 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
2026-02-10 11:00:57 -08:00
Amine Khaldi b175bdf4ee Merge commit '8f8d27aca479cb1456899acf7a4127aa06d4763f' into checkpoint/main_from_release_2.6.0_8f8d27aca479cb1456899acf7a4127aa06d4763f 2026-02-09 11:50:50 +01:00
Arvid NorbergandGitHub 062f6257e1 Blockchain does not have run_generator() (#20433)
Blockchain does not have run_generator(). In this test, these calls are never made, but just here in case something changes
2026-02-05 08:32:36 -08:00
matt-o-howandGitHub 235340a24b Prevent None version in __init__.py (#20453)
* prevent None version

* Fix comparison of __version__ to None
2026-02-04 10:13:19 -08:00
Gene HoffmanandGitHub f5b33f4c59 Speed up full node tests on macOS Intel: skip slow long-reorg cases (#20456) 2026-02-02 09:44:35 -08:00
Chris MarslenderandGitHub ae9e98b36d checkpoint: into main from release/2.6.0 @ 4e36460622 (#20429)
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 -->
2026-02-02 08:05:45 -08:00
Arvid NorbergandGitHub 8f8d27aca4 push out testnet11 soft fork activation height by 8 days (40000 blocks) (#20445) 2026-01-28 09:52:56 -08:00
Matt HauffandGitHub 873dbb555a [LABS-312] Miscellaneous wallet RPC cleanups (#20325)
Miscellaneous wallet RPC cleanups
2026-01-27 13:32:54 -08:00
Amine Khaldi 301fa2c143 Merge commit '4e364606227ab2eead3d0fc7a0c8c8030715326c' into checkpoint/main_from_release_2.6.0_4e364606227ab2eead3d0fc7a0c8c8030715326c 2026-01-23 11:14:40 +01:00
Matt HauffandGitHub 4ace81ae17 [LABS-294] Add kw_only to all wallet RPC types (#20324)
Add `kw_only` to all wallet RPC types
2026-01-21 09:48:44 -08:00
Zachary BrownandGitHub 8fae9ba2a0 checkpoint: into main from release/2.6.0 @ a19365ac4e (#20413)
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 -->
2026-01-16 11:18:04 -08:00
Matt HauffandGitHub 979cfd1a54 [LABS-307] Extract manual syncing logic out of wallet RPC (#20318)
* Extract manual syncing logic out of wallet RPC

* Fix test

* Inicidental indentation?
2026-01-16 11:17:26 -08:00
Amine Khaldi f36001ef9f Merge commit 'a19365ac4ef9e85fd7fd69a2cd654441bc121afa' into checkpoint/main_from_release_2.6.0_a19365ac4ef9e85fd7fd69a2cd654441bc121afa 2026-01-16 11:51:35 +01:00
47f04b97fe add byc and crt to default CAT list (#20412)
* add byc and crt to default CAT list

* Lint fix

---------

Co-authored-by: Earle Lowe <e.lowe@chia.net>
2026-01-15 13:05:18 -08:00
Almog De PazandGitHub 4e36460622 get_flags, fix pre_sp_tx_block, test CHIA-3861 (#20400)
* get_flags, fix pre_sp_tx_block, test

* genesis case for get_flags

* block height for flags below fork
2026-01-15 09:37:48 -08:00
Amine KhaldiandGitHub de04bacd67 Cherry-pick CHIA-3866 Prioritize trusted peers in FullNodeAPI's send_transaction (#20407)
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 -->
2026-01-15 09:37:18 -08:00
Amine Khaldi e6017089cd Merge commit 'b7b3638fcc281a82296c1ae1df82e7765bd93384' into checkpoint/main_from_release_2.5.8_b7b3638fcc281a82296c1ae1df82e7765bd93384 2026-01-15 16:05:31 +01:00
Amine KhaldiandGitHub 20f86e15d1 CHIA-3866 Prioritize trusted peers in FullNodeAPI's send_transaction (#20401)
Prioritize trusted peers in FullNodeAPI's send_transaction.
2026-01-14 13:43:45 -08:00
Matt HauffandGitHub 5ed0eeff54 [LABS-302] Forward send_transaction and cat_spend to create_signed_transaction (#20321)
* Pipe `send_transaction` thru `create_signed_transaction`

* Pipe `cat_spend` thru `create_signed_transaction`

* Add back the wallet checks
2026-01-13 14:31:21 -08:00
Amine KhaldiandGitHub 04b9d010b7 Cherry-pick CHIA-3856 Use an adapted version of deficit round robin algorithm in TransactionQueue's pop (#20396)
Use an adapted deficit round robin algorithm version in TransactionQueue's pop.
2026-01-13 09:50:18 -08:00
Almog De PazandGitHub 27bfa214ad blocktools double sub epoch summary hash bug (#20399)
fix_double_sub_epoch_summary_hash_bug
2026-01-13 09:49:43 -08:00
Amine KhaldiandGitHub 9491c6ee32 CHIA-3856 Use an adapted version of deficit round robin algorithm in TransactionQueue's pop (#20351)
Use an adapted deficit round robin algorithm version in TransactionQueue's pop.
2026-01-12 09:07:14 -08:00
Matt HauffandGitHub a19365ac4e [LABS-394] Add a streamable hack to force ConditionValidTimes serialization order (#20383)
Add a streamable hack to force `ConditionValidTimes` serialization order
2026-01-09 12:08:18 -08:00
Arvid NorbergandGitHub b7b3638fcc bump chia_rs to 0.35.1 (#20393) 2026-01-09 12:07:51 -08:00
Amine KhaldiandGitHub 000e2a74d9 Cherry-pick CHIA-3867 Simplify TransactionQueue's put (#20392) (#20395)
CHIA-3867 Simplify TransactionQueue's put (#20392)

Simplify TransactionQueue's put.
2026-01-09 12:05:50 -08:00
Matt HauffandGitHub baf8bd05c0 [LABS-311] Extract track_new_launcher_id from dl_track_new (#20320)
* Add optional creation to `get_dl_wallet`

* Extract `track_new_launcher_id` from `dl_track_new`
2026-01-09 12:04:29 -08:00
Amine KhaldiandGitHub 428e26cf5b Explore bringing back v2 plot pool keys support (#20388)
Explore bringing back v2 plot pool keys support.
2026-01-08 09:17:56 -08:00
Amine KhaldiandGitHub 338a13ae3d CHIA-3867 Simplify TransactionQueue's put (#20392)
Simplify TransactionQueue's put.
2026-01-08 09:17:19 -08:00
Almog De PazandGitHub 6b8202cd6a Augmented usage fix (#20361)
* pass augmented into test_utils

* add invariant

* remove redundant check

* check prev is in underlying

* fix check for genesis

* use try_block_recoed

* tests

* use assertion error
2026-01-05 09:36:21 -08:00
Matt HauffandGitHub 6a1b2314f8 [LABS-387] Revert accidental RPC parameter name change (#20362)
Revert accidental RPC parameter name change
2025-12-29 10:40:24 -08:00
Earle LoweandGitHub 5727efb904 Fixes to test_long_sync_untrusted_break (#20327)
* Fixes to test_long_sync_untrusted_break

* Address bugbot comments re ip address string

* Remove commented out debug code

* Apply suggestions from bugbot
2025-12-18 08:48:08 -08:00