Commit Graph
1741 Commits
Author SHA1 Message Date
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 05d8276921 Dead code elimination 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 8e885142b8 Tidy extraneous changes 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 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
Matt HauffandGitHub 873dbb555a [LABS-312] Miscellaneous wallet RPC cleanups (#20325)
Miscellaneous wallet RPC cleanups
2026-01-27 13:32:54 -08: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
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
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
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
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 10d8530db7 async is_empty() not awaited (#20328) 2025-12-15 09:44:58 -08:00
Matt HauffandGitHub 0f6fceb105 Delete unnecessary puzzles that have been moved to chia_puzzles_py (#20341) 2025-12-10 19:12:04 -08:00
Matt HauffandGitHub 88e9f78bea [LABS-291] Port get_farmed_amount to @marshal (#20187)
Port `get_farmed_amount` to `@marshal`
2025-12-10 09:57:27 -08:00
Matt HauffandGitHub 144c1a3190 [LABS-299] Extract pool wallet pubkey generation to WSM (#20322)
Extract pool wallet pubkey generation to WSM
2025-12-10 09:56:30 -08:00
Matt HauffandGitHub a745d88961 [LABS-249] Port crcat_approve_pending to @marshal (#20116)
* Port `crcat_approve_pending` to `@marshal`

* Forgot `push=True`
2025-12-09 13:15:55 -08:00
Matt HauffandGitHub 47ed91c8ec [LABS-305] Extract signing functionality from wallet RPC to its own library (#20317)
* Extract `verify_signature`

* Extract `sign_message_by_address`

* Extract (most of) `sign_message_by_id`
2025-12-09 11:28:09 -08:00
Matt HauffandGitHub a05a0c57d2 [CHIA-3707] Port create_new_wallet to @marshal (#20087)
* 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__()`
2025-12-08 09:31:51 -08:00
Matt HauffandGitHub 4d7c30886a [LABS-304] Refactor get_spendable_coins logic mostly out of RPC (#20302)
Refactor `get_spendable_coins` logic mostly out of RPC
2025-12-05 09:42:39 -08:00
Matt HauffandGitHub 8eba5d8490 [CHIA-3686] Port send_transaction_multi to @marshal (#20071)
* Port `send_transaction_multi` to `@marshal`

* test coverage
2025-12-04 09:43:05 -08:00
Matt HauffandGitHub 63af9cd8a8 [LABS-306] Simplify cancel_offers (#20305)
Simplify `cancel_offers`
2025-12-04 09:42:10 -08:00
Matt HauffandGitHub b6e8a9e3bc [LABS-303] Simplify spend_clawback_coins (#20300)
* Simplify `spend_clawback_coins`

* specific exception

* Okay not so fancy

* Couple of tests
2025-12-02 10:14:38 -08:00
Matt HauffandGitHub f0a141f688 [CHIA-3687] Port create_signed_transaction to @marshal (#20067)
* Port `create_signed_transaction` to `@marshal`

* Hack in the old interface for `send_transaction_multi`

* Bad rebase
2025-12-01 18:01:45 -08:00
8315f62ae6 Import check_time_locks() and CoinRecord (#19848)
* initial commit

* fix int to bool map

* another int bool map

* cast error to Err class

* cast to Err in a couple other places

* remaining couple

* ruff

* inline coinstore bool

* typing fixes

* import directly from rust and remove legacy file

* fix lingering ref to coinrecord

* another outdated import

* ruff

* typping fix

* minor simplifications

* Fix test

* fix import merge

* address comments

* undo coin_store change

---------

Co-authored-by: Arvid Norberg <arvid@libtorrent.org>
Co-authored-by: Matt <quexington@gmail.com>
2025-11-26 12:48:42 -08:00
Matt HauffandGitHub cdd19fb35c [LABS-301] Extract split_coins and combine_coins RPCs to WalletStateManager (#20290)
* Extract `split_coins` to `WalletStateManager`

* Extract `combine_coins`

* < 2
2025-11-25 11:58:56 -08:00
Matt HauffandGitHub be744cab12 [LABS-298] Simplify push_transactions (#20279)
* Simplify `push_transactions`

* Further simplify
2025-11-25 11:58:12 -08:00
Matt HauffandGitHub bc957225e7 [LABS-288] Less asset_id: str (#20261)
* Less `asset_id: str`

* Missed a couple

* Missed a couple more

* Missed another?
2025-11-25 11:37:48 -08:00
Matt HauffandGitHub 2b3c11e170 [CHIA-3610] Port cancel_offer(s) to @marshal (#20066)
* Port `cancel_offer` to `@marshal`

* Port `cancel_offers` to `@marshal`

* forgot `push=True`
2025-11-25 10:57:19 -08:00
Matt HauffandGitHub 5ffb3618a3 [CHIA-3609] Port get_offer(s) to @marshal (#20062)
* Port `get_offer` to `@marshal`

* Port `get_all_offers` to `@marshal`
2025-11-21 09:45:26 -08:00
Matt HauffandGitHub d34bb600f0 [LABS-310] Improve WalletStateManager.get_wallet error handling (#20260)
* Improve `WalletStateManager.get_wallet` error handling

* Fix test regex
2025-11-21 09:38:34 -08:00
Earle LoweandGitHub f6fc9328ed Change GetTransactions to use uint32 to support wallets with very large numbers of transactions (#20278) 2025-11-21 09:35:48 -08:00
Matt HauffandGitHub 40db4635a8 [LABS-245] Enable PEP604 Ruff rules (#20269)
* Enable PEP604 Ruff rules

* Fix harcoded signature in test

* Hack CLVMStreamable test with note to fast follow
2025-11-18 12:34:00 -08:00
Matt HauffandGitHub 25501d67eb [LABS-160] Fix bulk minting endpoint to work properly on testnet (#20254)
Fix bulk minting endpoint to work properly on testnet
2025-11-15 10:51:26 -08:00
Matt HauffandGitHub 3cf5058793 [LABS-297] Merge get/delete_(all_)notifications (#20259)
* Merge get_(all)_notifications

* Merge delete_(all)_notifications

* Remove unused code path
2025-11-15 10:50:33 -08:00
Matt HauffandGitHub b1009b100e [LABS-296] Merge get_cat_spendable_coins into get_spendable_coins_for_wallet (#20230)
* merge `get_cat_spendable_coins` into `get_spendable_coins_for_wallet`

* Remove `get_max_spendable_coins` as well

* Fix CR-CAT wallet

* Make the max cap optional
2025-11-12 09:11:07 -07:00
Richard KissandGitHub ec35492946 Api stubs (#19979)
* harvester_api_protocol

* move to apis

* Remove `chia.apis` => `chia.harvester` dependency.

* Remove circular dependencies between `chia.apis` and service modules.

* SolverAPIStub, and add solver to tach.toml.

* Make the stubs (lack of) implementations more consistent.

* Use `stub_metadata_for_type` instead of `class_for_type`.

The only thing ever used from `ApiProtocol` in `WSConnection`
was the metadata field, so let's pass along only that.

* NewSignagePointHarvester2

* remove some stuff
2025-11-12 09:06:12 -07:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Earle Lowe
716a296fed build(deps): bump ruff from 0.14.2 to 0.14.3 (#20225)
* build(deps): bump ruff from 0.14.2 to 0.14.3

Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.2 to 0.14.3.
- [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.2...0.14.3)

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

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

* Use %r instead of %s and repr()

---------

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>
2025-11-07 13:31:18 -07:00
Matt HauffandGitHub 7a9e9fa12d [LABS-156] Remove unnecessary Streamable hint (#20227)
Remove unnecessary `Streamable` hint
2025-11-06 12:26:30 -07:00
Matt HauffandGitHub 0c05cbb42c [LABS-289] Add kw_only=True to TransactionRecord (#20228)
Add `kw_only=True` to `TransactionRecord`
2025-11-06 11:13:21 -07:00
Matt HauffandGitHub 74ec8a44d4 [CHIA-3608] Port take_offer to @marshal (#20061)
* Port `take_offer` to `@marshal`

* `TransactionEndpointRequest` misses
2025-11-06 09:35:24 -07:00
Matt HauffandGitHub 1202e933a6 [LABS-293] Ensure wallet is synced for RPC TX endpoints (#20190)
* Ensure wallet is synced for RPC tx endpoints

* Address flakes

* more flakes

* More flakes in DL tests
2025-11-03 09:17:06 -07:00
Matt HauffandGitHub fcdb8e4925 Manual fixes for upcoming Ruff pyupgrade push (#20213)
* Manual fixes

* Revert back to variable in type expression

* Fix streamable to handle UnionType
2025-11-03 09:16:42 -07:00
Matt HauffandGitHub 590be179fc [LABS-161] Add a method for creating outgoing transactions (#20209)
* Add a method for creating outgoing transactions

* Fix some oversights wrt wallet_id
2025-10-31 08:56:15 -07:00
Matt HauffandGitHub 284310d637 [CHIA-3607] Port get_offer_summary to @marshal (#20058)
* Port `get_offer_summary` to `@marshal`

* test coverage
2025-10-31 08:55:36 -07:00