chia-blockchain/chia/wallet
Kronus91 f0071358bf
Clawback Integration (#14348)
* Clawback integration draft

* Add unit test

* Clawback rework

* Fix unit test

* Fix coin type

* Add tx fee & bulk clawback

* Add manual claim

* Add get_clawback_coins API

* Fix unit test

* Fix unit test

* Resolve comments

* Fix unit test

* remove erroneous comment from p2_1_of_n.clvm

* Resolve comments

* use full puzzle instead of hash in augmented_condition.clvm

* Fix pre-commit

* Add set auto claim api

* Resolve comments

* Fix precommit

* Add get auto claim config api

* Fix pre-commit

* Fix mypy and unit tests

* Switch to reuse coin store solution

* Fix unit tests

* Fix pylint

* Resolve comments

* Fix rename

* Revert puzzle_decorator_type since circular import

* Resolve comments

* Add new coin_type & metadata to coin_records

* Remove unrelated changes

* Fix pre-commit

* Remove unrelated changes

* Fix pre-commit

* Add get_coin_records_between

* Fix field data type

* Resolve comments

* Fix unit test

* Remove unrelated changes

* Remove unrelated changes

* Improve unit tests

* Resolve comments

* Fix clvm hex

* Fix unit tests

* Fix API router

* Update rpc client

* Fix pre-commit

* Remove unrelated changes

* Fix set/get auto claim

* Force populate secret key for clawback

* optimizations

* added clawback puzzle hashes

* update drivers and add lifecycle tests

* Fix driver Program types

* avoid redundant uncurry in clawback

* simplify deserialize_coin_metadata()

* run clawback puzzles with a lower cost limit

* Update chia/wallet/wallet_state_manager.py

Co-authored-by: Arvid Norberg <arvid@libtorrent.org>

* Add tx records for Clawback

* Add clawback coin id

* Add type filter for get_transactions

* Modify clawback tx types

* Resolve comments

* Resolve comments

* Fix unit tests

* Resolve comments

* Improve unit test

* Use merkle tree class

* Resolve comments

* Resolve comments

* Fix curry tree hash

* Improve coverage

* Improve coverage

* Fix unit test

* Fix test

* Improve coverage

* Fix pre-commit

* Resolve comments

* Handle invalid clawback metadata

* Fix unit tests

* Improve coverage

* Handle empty byte issue

* Forward memo

* Fix unit test

* Resolve comments

* Rework Clawback TX management

* Add confirmed filter

* Resolve comments

* Fix unit test

* Fix pre-commit

* Improve coverage

* Fix unit test

* Handle missing auto_claim config

* Fix pre-commit

* Revert tx confirmed change

* Drop unused `deserialize_coin_metadata`

* Parse clawback metadata in `WalletCoinRecord.parsed_metadata`

* Use `WalletCoinRecord.parsed_metadata`

* Avoid querying low amount coins with the `amount_range` parameter

* Drop unused `to_puzhash`

* Drop `print("Ping")`

* Drop outdated assert

* Resolve comments

* Fix coverage

---------

Co-authored-by: geoffwalmsley <geoffwalmsley@gmail.com>
Co-authored-by: Sebastjan Trepca <trepca@gmail.com>
Co-authored-by: arvidn <arvid@libtorrent.org>
Co-authored-by: xdustinface <xdustinfacex@gmail.com>
2023-06-05 10:53:34 -05:00
..
cat_wallet wallet: Refactor WalletStateManager.get_keys (#15361) 2023-05-24 16:49:36 -05:00
dao_wallet Add placeholders for DAO Wallet directories (#14858) 2023-03-22 04:47:32 -05:00
db_wallet Chialisp file extensions (#14996) 2023-04-18 11:27:17 -05:00
did_wallet wallet: Refactor WalletStateManager.get_keys (#15361) 2023-05-24 16:49:36 -05:00
nft_wallet wallet: Refactor WalletStateManager.get_keys (#15361) 2023-05-24 16:49:36 -05:00
puzzles Clawback Integration (#14348) 2023-06-05 10:53:34 -05:00
trading wallet: Give Payment.memos a default value (#15172) 2023-05-03 00:30:53 -05:00
util Clawback Integration (#14348) 2023-06-05 10:53:34 -05:00
vc_wallet Add notification for VC (#15353) 2023-05-22 17:38:12 -05:00
__init__.py git mv src chia 2021-04-04 21:41:39 -07:00
block_record.py configure isort to add the future annotations import (#13327) 2022-09-30 03:40:22 -05:00
chialisp.py Remove unneeded f-string notation (#14585) 2023-02-15 23:02:24 -06:00
coin_selection.py force \n/lf line endings in pre-commit (#15036) 2023-05-03 00:29:31 -05:00
derivation_record.py configure isort to add the future annotations import (#13327) 2022-09-30 03:40:22 -05:00
derive_keys.py remove leading newlines from indented code blocks (#14653) 2023-02-23 21:53:48 -06:00
driver_protocol.py configure isort to add the future annotations import (#13327) 2022-09-30 03:40:22 -05:00
key_val_store.py cleanup adjacent string literals (#14650) 2023-02-22 17:16:07 -06:00
lineage_proof.py isort: Remove all chia.wallet exceptions and sort the related files (#13977) 2022-11-22 15:33:43 -06:00
notification_manager.py wallet: Introduce WalletIdentifier (#14964) 2023-04-04 00:08:10 -05:00
notification_store.py remove leading newlines from indented code blocks (#14653) 2023-02-23 21:53:48 -06:00
outer_puzzles.py configure isort to add the future annotations import (#13327) 2022-09-30 03:40:22 -05:00
payment.py wallet: Give Payment.memos a default value (#15172) 2023-05-03 00:30:53 -05:00
puzzle_drivers.py slightly faster nft complex offer tests (#14847) 2023-03-28 11:46:09 -05:00
secret_key_store.py Typecheck chia/wallet/secret_key_store.py (#14945) 2023-05-23 19:53:01 -05:00
sign_coin_spends.py util: Cleanup Tuple[Optional[Err], ..] returns in condition_tools.py (#15009) 2023-04-14 15:20:36 -06:00
singleton.py Chialisp file extensions (#14996) 2023-04-18 11:27:17 -05:00
trade_manager.py wallet: Fix filter imports (#15325) 2023-05-18 13:19:57 -05:00
trade_record.py optimize offers (#14531) 2023-02-10 15:14:23 -06:00
transaction_record.py wallet: Fix, simplify and test TransactionRecord.is_valid (#15048) 2023-04-18 11:28:50 -05:00
transaction_sorting.py configure isort to add the future annotations import (#13327) 2022-09-30 03:40:22 -05:00
uncurried_puzzle.py configure isort to add the future annotations import (#13327) 2022-09-30 03:40:22 -05:00
wallet_blockchain.py wallet: Rename add block/state methods (#14460) 2023-04-03 09:52:35 -05:00
wallet_coin_record.py Clawback Integration (#14348) 2023-06-05 10:53:34 -05:00
wallet_coin_store.py Add type filter for get_transactions (#15196) 2023-05-15 10:19:06 -05:00
wallet_info.py configure isort to add the future annotations import (#13327) 2022-09-30 03:40:22 -05:00
wallet_interested_store.py remove leading newlines from indented code blocks (#14653) 2023-02-23 21:53:48 -06:00
wallet_nft_store.py wallet: Implement WalletNFTStore.delete_wallet (#15128) 2023-04-27 09:55:53 -05:00
wallet_node_api.py Give a type to tuple representing peak (height and block hash) of peer (#14853) 2023-05-23 19:53:32 -05:00
wallet_node.py Clawback Integration (#14348) 2023-06-05 10:53:34 -05:00
wallet_pool_store.py wallet: Implement WalletPoolStore.delete_wallet (#15126) 2023-05-11 19:04:15 -05:00
wallet_protocol.py wallet: Some WalletType cleanup (#14897) 2023-03-27 10:18:36 -05:00
wallet_puzzle_store.py wallet: Implement WalletPuzzleStore.delete_wallet (#15125) 2023-05-11 19:04:31 -05:00
wallet_retry_store.py Search for launcher with correct spent_height (#13827) 2022-11-08 00:04:18 -06:00
wallet_state_manager.py Clawback Integration (#14348) 2023-06-05 10:53:34 -05:00
wallet_transaction_store.py Add confirmed filter for get_transactions (#15374) 2023-06-01 11:53:59 -05:00
wallet_user_store.py remove leading newlines from indented code blocks (#14653) 2023-02-23 21:53:48 -06:00
wallet_weight_proof_handler.py wallet: Some rework/cleanup of weight proof validation (#14572) 2023-04-14 15:18:25 -06:00
wallet.py Clawback Integration (#14348) 2023-06-05 10:53:34 -05:00