100 Commits
Author SHA1 Message Date
Matt HauffandGitHub 9492119b2f [LABS-490] Extract coin splitting functionality into its own module (#21161)
<!-- CURSOR_SUMMARY -->
> [!NOTE]
> **Medium Risk**
> Refactors wallet coin split/combine paths used by RPC; behavior should
be equivalent but touches core transaction construction and coin
selection.
> 
> **Overview**
> Moves **split** and **combine** coin logic out of `WalletStateManager`
into a new **`FungibilityManager`**, wired on the state manager at
startup and used by the wallet RPC for `split_coins` / `combine_coins`.
> 
> RPC handlers now resolve a fungible wallet via `get_fungible_wallet`
(standard or CAT only) and call the manager instead of
`wallet_state_manager.split_coins` / `combine_coins`. Invalid wallet
types raise **`Wallet {id} is not eligible for coin splitting`** (tests
updated for split and combine RPC paths). **`coin_num_limit`** is no
longer forwarded into the combine implementation; limits still apply via
`CombineCoins` request validation.
> 
> Behavior of coin selection, fees, and transaction building is intended
to stay the same—this is primarily structural cleanup for LABS-490.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
28e52c2070. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
2026-08-20 14:04:50 -07:00
Matt HauffandGitHub 0b88565359 [LABS-193] Port chia wallet ... to @chia_command (#21131) 2026-08-13 16:04:03 -07:00
Matt HauffandGitHub 8fab035ed5 Identify DL singletons in determine_coin_type (and save computation) (#21271) 2026-08-13 16:03:22 -07:00
Matt HauffandGitHub 18286c3992 Remove obsolete add_condition_to_solution (#21272) 2026-08-13 16:02:16 -07:00
Matt HauffandGitHub d90001e3ee [LABS-170] Add automatic reorg testing to WalletTestFramework (#21211)
* [LABS-170] Add automatic reorg testing to `WalletTestFramework`

* Actually exempt reorgs when specified

* Comments by @cursor

* Fix CAT wallet tests

* Reorg exempt offer tests

* Fix DID tests

* Fix NFTWallet tests

* Fix RPC tests

* Fix VC tests

* Exempt pool tests

* Add reorg_exempt to top level conftest

* Fix tests (nd maybe break them?)
2026-08-10 16:49:16 -05:00
Matt HauffandGitHub fec92d5b2b [LABS-484] Extract clawback functionality into its own module (#21160) 2026-08-05 15:33:42 -07:00
Matt HauffandGitHub 7648ef7d87 [LABS-397] Add v2 support to farmer (#20739)
* Use a separate config for pooling information

* New PlotNFT drivers

* PlotNFT2 Wallet

* PlotNFT V2 RPCs and CLI

* Integrate v2 pooling protocol into farmer

* Comment by @cursor

* Fix test

* Comments by @cursor

* whoops

* Comments by @cursor

* Comments by @cursor

* Comments by @cursor

* Some tidying

* fix test for memo adjustment

* tweak additional memos again

* empirical testing with v1 pools

* Add expiration to `GetAuthRequest`

* Remove pyjwt dep

* Revert `get_login_link` to old behavior

* Add an extra derivation to auth key for v2

* unhardened

* Fix login link test

* Fix login link test again

* Fix network protocol data

* Comments by cursor

* Fix test

* Use correct pool url after redirect

* Fix test for coverage

* Upstream wallet fixes

* Add `REMARK` option to `launch`

* pre-commit

* chmod

* test coverage

* Add wallet name

* test coverage

* moar test coverage

* commentsby @cursor

* moar test coverage

* fix custody architecture namespace

* Comments by @matt-o-how

* Fix /GET farmer to omit the signature rather than None

* Fix protocol test

* fix test

* comments by @cursor

* diff minimizatino

* event dispatch

* Fix test deadlock

* Comments by @cursor

* test coverage

* Comments by @cursor

* Comments by @cursor
2026-08-05 14:24:42 -07:00
Matt HauffandGitHub 06182a0ab8 [LABS-190] Port chia wallet nft to @chia_command (#21118)
* Port `chia wallet notifications` to `@chia_command` framework

* Comments by @cursor

* Add parsing tests

* Fix tests

* Add context for AddressParamType

* Comments by @cursor

* Port `chia wallet vcs` to `@chia_command` framework

* Add context for AddressParamType

* Remove old CLI test

* [LABS-189] Port `chia wallet did` to `@chia_command`

* Fix tests

* Fix tests

* Comments by @cursor

* Comments by @cursor

* Comments by @cursor

* Port `chia wallet nft` to `@chia_command`

* test coverage

* remove executable bit

* Bad merge

* little bit more test coverage
2026-08-05 14:24:23 -07:00
Matt HauffandGitHub 402236dfdb [LABS-488] Extract signing functionality to its own module (#21159)
* [LABS-480] Remove interested_ph_cache and initialize coin cache in init

* [LABS-481] Remove unnecessary `server` field from WSM

* [LABS-486] Remove useless `add_transaction` from WSM

* [LABS-488] Extract signing functionality to its own module

* Test coverage
2026-08-04 11:07:48 -07:00
Matt HauffandGitHub 6281e1566f [CHIA-3966] Use singleton struct from singleton instead of DID innerpuz (#21221) 2026-08-04 11:07:32 -07:00
Matt HauffandGitHub 545b3e476f [LABS-489] Generate Wallet RPC (#21141)
* Generate Wallet RPC

* Comment by @cursor

* fix test

* executable bit

* Comments by @cursor & fix tests

* Fix tests

* Fix tests

* Comments by @cursor

* test coverage

* Add pre-commit build for wallet stubs

* Comments by @cursor

* Comments by @cursor

* Comments by @cursor

* Comments by @cursor

* Port `get_coin_records` and `get_height_info` to `@marshal` decorator

* Remove executable bits?

* Comments by @cursor

* Comments by @cursor

* Add comment at top of .pyi file
2026-08-03 16:19:21 -07:00
dc3b72b15a [LABS-477] Basedpyright fixes for wallet tests (#21061)
* [LABS-470] Fix mismatching Wallets with WalletProtocol

* [LABS-471] Remove contravariant from WalletProtocol

* [LABS-472] Remove some `has/getattr` in favor of `runtime_checkable` protocols

* [LABS-473] Fix `clvm_streamable` to prevent typing through wrapping

* [LABS-474] Make sure `crcat` is always bound

* [LABS-475] Fix basedpyright errors

* Comments by @cursor

* fix tests

* remove trade_store from mypy exclusions

* some easy wallet_rpc_api fixes

* Another easy fix for WalletRpcAPI

* [LABS-476] Make CATWallet subclassing less problematic

* Comment by @cursor

* fix tests

* Remove puzzle_for_pk methods as unused

* [LABS-477] Basedpyright fixes for wallet tests

* Comments by @cursor

* Bad merge

---------

Co-authored-by: Amine Khaldi <amine.khaldi@reactos.org>
2026-08-03 14:43:59 -07:00
Matt HauffandGitHub fb02c964fb [LABS-476] Make CATWallet subclassing less problematic (#21051)
* [LABS-470] Fix mismatching Wallets with WalletProtocol

* [LABS-471] Remove contravariant from WalletProtocol

* [LABS-472] Remove some `has/getattr` in favor of `runtime_checkable` protocols

* [LABS-473] Fix `clvm_streamable` to prevent typing through wrapping

* [LABS-474] Make sure `crcat` is always bound

* [LABS-475] Fix basedpyright errors

* Comments by @cursor

* fix tests

* remove trade_store from mypy exclusions

* some easy wallet_rpc_api fixes

* Another easy fix for WalletRpcAPI

* [LABS-476] Make CATWallet subclassing less problematic

* Comment by @cursor

* fix tests

* Remove puzzle_for_pk methods as unused
2026-07-29 17:12:37 -05:00
Matt HauffandGitHub 68d396901b [LABS-189] Port chia wallet did to @chia_command (#21114)
* Port `chia wallet notifications` to `@chia_command` framework

* Comments by @cursor

* Add parsing tests

* Fix tests

* Add context for AddressParamType

* Comments by @cursor

* Port `chia wallet vcs` to `@chia_command` framework

* Add context for AddressParamType

* Remove old CLI test

* [LABS-189] Port `chia wallet did` to `@chia_command`

* Fix tests

* Fix tests

* Comments by @cursor

* Comments by @cursor

* Comments by @cursor

* Test coverage

* Fix tests

* Comments by @cursor

* bad merge
2026-07-29 17:12:24 -05:00
Matt HauffandGitHub 397b2e9d8a [LABS-486] Remove useless add_transaction from WSM (#21146)
* [LABS-480] Remove interested_ph_cache and initialize coin cache in init

* [LABS-481] Remove unnecessary `server` field from WSM

* [LABS-486] Remove useless `add_transaction` from WSM

* also remove `unlink_db`
2026-07-29 17:12:10 -05:00
Matt HauffandGitHub 525ed71824 [LABS-162] Replace Streamable in ActionScope with copy.deepcopy (#21170) 2026-07-29 04:00:05 -07:00
Matt HauffandGitHub f7b56e7a37 Port get_coin_records and get_height_info to @marshal decorator (#21181) 2026-07-29 03:59:09 -07:00
29e23ff7a7 [LABS-475] Fix basedpyright errors (#21048)
* [LABS-470] Fix mismatching Wallets with WalletProtocol

* [LABS-471] Remove contravariant from WalletProtocol

* [LABS-472] Remove some `has/getattr` in favor of `runtime_checkable` protocols

* [LABS-473] Fix `clvm_streamable` to prevent typing through wrapping

* [LABS-474] Make sure `crcat` is always bound

* [LABS-475] Fix basedpyright errors

* Comments by @cursor

* fix tests

* remove trade_store from mypy exclusions

* some easy wallet_rpc_api fixes

* Another easy fix for WalletRpcAPI

* small hinting fix for clvm_streamable

* Addendum.

---------

Co-authored-by: Amine Khaldi <amine.khaldi@reactos.org>
2026-07-28 13:27:23 -07:00
Matt HauffandGitHub 043dd382c0 [LABS-481] Remove unnecessary server field from WSM (#21145)
* [LABS-480] Remove interested_ph_cache and initialize coin cache in init

* [LABS-481] Remove unnecessary `server` field from WSM
2026-07-28 13:25:37 -07:00
Matt HauffandGitHub a0348571ca [LABS-192] Port chia wallet vcs to @chia_command framework (#21082)
* Port `chia wallet notifications` to `@chia_command` framework

* Comments by @cursor

* Add parsing tests

* Fix tests

* Add context for AddressParamType

* Comments by @cursor

* Port `chia wallet vcs` to `@chia_command` framework

* Add context for AddressParamType

* Remove old CLI test

* Fix tests

* Test coverage

* Comments by @cursor

* test coverage

* Comment by @cursor

* Comment by @cursor

* Comments by @cursor

* Test coverage
2026-07-28 09:21:32 -05:00
Matt HauffandGitHub 04a4a91d9a [LABS-480] Remove interested_ph_cache and initialize coin cache in init (#21144) 2026-07-24 07:05:42 -07:00
Matt HauffandGitHub bd84573182 [LABS-474] Make sure crcat is always bound (#21045) 2026-07-20 23:12:51 -07:00
Matt HauffandGitHub 6630c3309e [LABS-478] Add a comment for check_click_parsing (#21140) 2026-07-20 23:12:12 -07:00
Matt HauffandGitHub a9b0d2eb1e [LABS-473] Fix clvm_streamable to preserve typing through wrapping (#21044) 2026-07-15 23:00:27 -07:00
Matt HauffandGitHub c3b46235a8 [LABS-191] Port chia wallet notifications to @chia_command framework (#21081) 2026-07-15 22:59:52 -07:00
Matt HauffandGitHub f8237fb9c3 [LABS-396] PlotNFT2 CLI & RPC Integration (#20481) 2026-07-14 15:55:34 -07:00
Matt HauffandGitHub f4a50d22dd [LABS-472] Remove some has/getattr in favor of runtime_checkable protocols (#21043)
* [LABS-470] Fix mismatching Wallets with WalletProtocol

* [LABS-471] Remove contravariant from WalletProtocol

* [LABS-472] Remove some `has/getattr` in favor of `runtime_checkable` protocols
2026-07-14 11:39:53 -07:00
Matt HauffandGitHub 777811688d [LABS-471] Remove contravariant from WalletProtocol (#21041)
* [LABS-470] Fix mismatching Wallets with WalletProtocol

* [LABS-471] Remove contravariant from WalletProtocol
2026-07-06 11:46:24 -05:00
Matt HauffandGitHub 34649a174a [LABS-470] Fix mismatching Wallets with WalletProtocol (#21040) 2026-06-30 15:02:06 -05:00
Matt HauffandGitHub ec1b01a68f [LABS-355] PlotNFT2 Wallet (#20410)
* Use a separate config for pooling information

* New PlotNFT drivers

* PlotNFT2 Wallet

* Comment by @cursor

* whoops

* Comments by @cursor

* Comments by @cursor

* Comments by @cursor

* Some tidying

* fix test for memo adjustment

* tweak additional memos again

* Comments by cursor

* Fix test for coverage

* Upstream wallet fixes

* Add `REMARK` option to `launch`

* pre-commit

* chmod

* test coverage

* Add wallet name

* moar test coverage

* fix custody architecture namespace

* Comments by @matt-o-how

* diff minimization

* Contemporize(?) action scope test

* diff minimization

* Remove potentially unnecessary change

* Comment by @cursor

* whoops
2026-06-25 18:17:39 -05:00
Matt HauffandGitHub 0d5a394cf9 [LABS-469] Sanity check that PlotNFT memos match actual inner puzzle (#21029)
Sanity check that PlotNFT memos match actual inner puzzle
2026-06-23 12:23:41 -05:00
Matt HauffandGitHub 56ecda7077 [LABS-359] PlotNFT Drivers (#20352)
* Use a separate config for pooling information

* New PlotNFT drivers

* Comment by @cursor

* whoops

* Comments by @cursor

* Comments by @cursor

* Comments by @cursor

* Some tidying

* fix test for memo adjustment

* tweak additional memos again

* Fix test for coverage

* Add `REMARK` option to `launch`

* fix custody architecture namespace

* Comments by @matt-o-how
2026-06-16 15:57:54 -05:00
Matt HauffandGitHub a0a4460b7f [CHIA-4255] Change how offer_only works on create_offer_for_id (#21001)
* Change how `offer_only` works on `create_offer_for_id`

* Change how `offer_only` works on `create_offer_for_id`
2026-06-16 09:56:50 -05:00
Matt HauffandGitHub 0837baca8a [LABS-446] Use a separate config for pooling information (#20719)
* Use a separate config for pooling information

* Comment by @cursor

* whoops

* Comments by @cursor

* Comments by @cursor

* Comments by @cursor
2026-05-27 17:34:42 -05:00
Matt HauffandGitHub d5530a3153 Add /get_constants RPC to full node (#20862) 2026-05-05 19:56:00 -05:00
b1cd49be98 Add ability to specify coins to include in CoinSelectionConfig (#20664)
* Add ability to specify coins to include in `CoinSelectionConfig`

* Actually return the included coins

* Comments by @cursor

* Fix accidental empty set return on zero value selection

* Fix tests

* Comment by @cursor

* Add `primary_coin` as another option

* fix tests

* comments by @cursor

* comments by @cursor

* comments by @cursor

* Fixed test

* Added propagation of primary_coin

* Revert previous test fix and fix test

* Comment by @cursor

* whoops

---------

Co-authored-by: Bram Cohen <bram@chia.net>
2026-04-29 23:00:32 -05:00
Matt HauffandGitHub 7a426e547e More precise tx selection in test_create_signed_transaction (#20697) 2026-03-23 14:52:20 -05:00
Matt HauffandGitHub 4a5652da79 Fix flaky VC Wallet test (#20629) 2026-03-09 09:41:56 -05:00
Matt HauffandGitHub b3670e90c3 grep for and remove altendky (#20538) 2026-02-20 13:07:38 -06: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 0a39a4169f Re-enable accidentally disabled T100 (breakpoints) (#20416) 2026-01-22 13:49:36 -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
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
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
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 b50d58fc42 Fix flaky test (#20306) 2025-12-04 09:38:41 -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
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 e36c25fe29 Fix flaky data layer test (#20295)
Add a wallet sync check
2025-11-25 11:38:11 -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 eed4283ec3 [LABS-345] Update hsms to 0.3.2 (#20289)
* Update `hsms` to 0.3.2

* Repin in pyproject.toml

* Remove unintentional changes

* actually undo?
2025-11-21 09:58:36 -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
Matt HauffandGitHub edfd6ac045 Fix a flaky test (and less DEFAULT_TX_CONFIG) (#20280) 2025-11-21 09:33:16 -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
2971eb0a3c [LABS-290] Port test_wallet_rpc.py to WalletTestFramework (#20253)
* Port `test_send_transaction`

* Port `test_push_transactions`

* Port `test_get_balance`

* Port `test_get_farmed_amount`

* Port `test_get_farmed_amount_with_fee`

* Port `test_get_timestamp_for_height`

* (restrict some parametrizations)

* Port `create_signed_transaction` (and fix WalletTestFramework)

* Port `test_create_signed_transaction_with_puzzle/coin_announcement`

* Port `test_create_signed_transaction_with_excluded_coins`

* Port `test_get_transactions`

* Port `test_get_transaction_count`

* Port `test_get_coin_records_by_names`

* Port `test_did_endpoints`

* Port `test_nft_endpoints`

* Port `test_key_and_address_endpoints`

* Port `test_select_coins_rpc`

* Port `test_get_coin_records_rpc`

* Port `test_get_coin_records_rpc_limits/failures`

* Port `test_notification_rpcs`

* Port `test_verify_signature`

* Port `test_set_wallet_resync_on_startup`

* Port `test_set_wallet_resync_on_startup_disable`

* Port `test_set_wallet_resync_schema`

* Port `test_cat_spend_run_tail`

* Port `test_get_balances`

* Delete unused fixtures

* Remove DEFAULT_TX_CONFIG

* Fix reuse_puzhash behavior

* Minor improvements.

---------

Co-authored-by: Amine Khaldi <amine.khaldi@reactos.org>
2025-11-15 10:52:36 -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
Matt HauffandGitHub 772f152da2 Add a wait_for_wallet_synced to some flaky tests (#20229)
* Add a `wait_for_wallet_synced` to a flaky test

* Another reported test
2025-11-10 17:01:23 -07:00
Matt HauffandGitHub 7a9e9fa12d [LABS-156] Remove unnecessary Streamable hint (#20227)
Remove unnecessary `Streamable` hint
2025-11-06 12:26:30 -07:00
599cff3fb1 [LABS-323] Dedup test_spend_clawback_coins (#20221)
* Comment about coverage between tests

* Add a test for errors in wallet file

* Modify manual claim test to do multiple clawbacks at once

* Convert `test_wallet_clawback_claim_auto`

* Convert `test_wallet_clawback_clawback`

* Convert `test_wallet_clawback_sent_self`

* Convert `test_wallet_clawback_claim_manual`

* Convert `test_wallet_clawback_reorg`

* Convert `test_get_clawback_coins`

* Convert `test_clawback_resync`

* Delete original test

* Cleanup helper comments

* Delete auto claim settings test

* Delete get auto claim settings test

* Minor improvement.

---------

Co-authored-by: Amine Khaldi <amine.khaldi@reactos.org>
2025-11-06 12:26:18 -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
Matt HauffandGitHub 657b637544 [LABS-151] Replace NIL with Program.NIL (#20189)
Replace `NIL` with `Program.NIL`
2025-10-24 11:24:28 -07:00
Matt HauffandGitHub 0a26924688 [CHIA-3606] Port create_offer_for_ids to @marshal (#20056)
* Port `create_offer_for_ids` to `@marshal`

* Self from typing_extensions

* Fix support for "" in PuzzleInfo/Solver
2025-10-21 11:00:37 -07:00
Matt HauffandGitHub 18c1010240 [LABS-285] Fix RPC key deletion endpoints to actually delete intended DBs (#20171)
Fix RPC key deletion endpoints to actually delete intended DBs
2025-10-21 10:58:04 -07:00
Matt HauffandGitHub 615588882b [LABS-282] Remove unnecessary private key access from get_public_keys (#20162)
Remove unnecessary private key access from `get_public_keys`
2025-10-20 11:55:52 -07:00
Matt HauffandGitHub f4f7fad91b [LABS-247] Move defaults from 3.10 to 3.12 (#20115)
* initial changes

* poetry fix

* Address ruff

* Install scripts issues

* Experiment a little bit

* Okay now try for rocky linux and use 3.12 instead

* Remove the now unused thing

* Move defaults from 3.10 to 3.12

* Setup python3.12

* debug

* debug

* whoops

* listen I really dont know what Im doing

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* debug

* Use Chia action

* Use an upstream change

* debug

* Move the python setup to the install action

* try something dumb

* back to sh

* debug

* Cleanup after extensive debug

* Add SQLite version report

* test with new images

* remove python setup

* try this image?

* back to this

* Try hyphenless

* Use published pyhon312 tags
2025-10-17 06:32:03 -07:00
Matt HauffandGitHub ce4b2d3930 Delete legacy decorator (#20156) 2025-10-15 10:12:36 -07:00
Matt HauffandGitHub 87618b7d84 [LABS-248] Pivot Ruff config from "select" to "ignore" (#20114)
* Pivot from "select" to "ignore"

* Add classifications for ignores
2025-10-14 15:43:44 -07:00
Matt HauffandGitHub 0158ff2783 [CHIA-3605] Port cat_spend to @marshal (#20007)
* Port `cat_spend` to `@marshal`

* fix tests

* test coverage
2025-10-14 15:42:44 -07:00
e947dd14c7 [LABS-244] Remove python 3.9 support (#20099)
* initial changes

* poetry fix

* Address ruff

* Install scripts issues

* Experiment a little bit

* Okay now try for rocky linux and use 3.12 instead

* Remove the now unused thing

* Use dnf for consistency

* Simplify installations

* Still need git

* relock poetry with 2.2.0

* relock poetry with 2.2.0

* try `git checkout main poetry.lock && .penv/bin/poetry lock` on altendky's system

---------

Co-authored-by: Kyle Altendorf <sda@fstab.net>
2025-10-14 07:19:52 -07:00
Matt HauffandGitHub ab5528850c [LABS-126] Add label support to /add_key (#20098)
Add label support
2025-09-24 09:21:51 -07:00
Matt HauffandGitHub b45f67765f [CHIA-3604] Port easy CAT endpoints to @marshal (#19992)
* Port `spend_clawback_coins` to `@marshal`

* fix tests

* fix test again

* how do I keep missing these?

* Port `select_coins` to `@marshal`

* fix tests

* fix test

* Port `get_spendable_coins`

* Port `get_coin_records_by_names`

* Port `send_notifications` to `@marshal`

* Fixing the thing that is always broken

* Remove accidental import

* Port `get_default_cat_list`

* Port `cat_set_name`

* Port `cat_get_name`

* Port `get_stray_cats`

* Port `cat_get_asset_id`

* Port `cat_asset_id_to_name`

* Port `check_offer_validity`

* Port `get_offers_count`
2025-09-23 12:48:40 -07:00
Matt HauffandGitHub 9d71f283c3 [CHIA-3603] Port send_notifications to @marshal (#19987)
* Port `spend_clawback_coins` to `@marshal`

* fix tests

* fix test again

* how do I keep missing these?

* Port `select_coins` to `@marshal`

* fix tests

* fix test

* Port `get_spendable_coins`

* Port `get_coin_records_by_names`

* Port `send_notifications` to `@marshal`

* Fixing the thing that is always broken

* Remove accidental import
2025-09-19 13:27:03 -07:00
Matt HauffandGitHub 61034b5646 [CHIA-3602] Port wallet coin endpoints to @marshal (#19966)
* Port `spend_clawback_coins` to `@marshal`

* fix tests

* fix test again

* how do I keep missing these?

* Port `select_coins` to `@marshal`

* fix tests

* fix test

* Port `get_spendable_coins`

* Port `get_coin_records_by_names`

* bad port of `include_spent_coins`

* Less bad replace logic

* Actually autofill the CoinSelectionConfigLoader in `get_spendable_coins`

* Comments by @altendky
2025-09-13 11:11:03 -07:00
Matt HauffandGitHub 326b1084ce [CHIA-3729] Fix clvm streamable type analysis (#20031)
* Use fully recursive JSON logic for compound clvm streamable types

* Accomodate rust types

* Accomodate dicts

* Broaden function to handle type[object] instead of type[Streamable] (with a little mypy workaround)

* Whoops, delete that

* Small bug

* Okay a complete rework

* Delete some now unused stuff

* Some edge cases
2025-09-10 12:31:00 -07:00
Matt 0f1d690246 Add a test for invalid enum value 2025-08-26 10:37:20 -07:00
Matt 4623d0d792 Comments by @altendky 2025-08-26 10:16:12 -07:00
Matt f3e85301c2 stop converting 2025-08-21 15:30:28 -07:00