* replace blspy imports with chia_rs imports for BLS types
* remove blspy-stubs, since we're dropping the blspy dependency. chia_rs has type stubs already
* Allow create_tandem_xch_tx to take a set of announcements
* Create potential announcement in correct arm of create_tandem_xch_tx
* Make does_coin_belong_to_wallet more robust
* Add match_hinted_coin to wallet protocol
* Add CROuterPuzzle
* Add conditions with fee announce.clsp
* Add CRCATWallet
* Add CLI support for CR-CATs
* Fix bug in CATOuterPuzzle
* Add SOFTFORK_HEIGHTS as an exportable variable from conftest
* Allow specifying num of blocks to farm to wallets_prefarm_services
* Add potential subclasses to cat wallet creation
* Integrate CR-CATs into offers
* Address comments by @geoffwalmsley
* Add CRCAT info to get_wallets
* Changes due to (#15846)
* Only subscribe to inner wallet puzzle hashes
* Add a store for unacknowledge CAT coin states
* Add additions and removals to dummy TX
* whoops
* Add interested coin IDs when saving trade
* black
* One test was not hinting, make it use push_transaction RPC instead
* restructure and comment a block
* Change asset ID to blob and add index
* Add get all puzzle hashes by wallet id
* Separate unacknowledged state getter and deletion
* Remove peer_id from CAT states table
* lint
* fix forwards compat tests
* isort
* Subscribe to the change children of CATs
* Hint to change
* undo unintentional changes
* Change cat test
* fix test_cat_spend test memo check
* provide save_trade parameter
* Address comments by @xdustinface
* Fix memos assertion again
* hint in test cat creation
* Missing save_trade call
* time out assert
* Hint in RPC test
* Fix wallet resync function
* Fix DB bug, add test coverage
* pass offer to save_trade
* add reorg rollback to unacknowledged states
* Add some unit tests
* Give a type to tuple representing peak (height and block hash) of peer
* Update chia/wallet/wallet_node.py
Co-authored-by: Kyle Altendorf <sda@fstab.net>
---------
Co-authored-by: Kyle Altendorf <sda@fstab.net>
Co-authored-by: Earle Lowe <e.lowe@chia.net>
* First crack at VC puzzles
* Add p2_puzzle_or_hidden_puzzle
* First crack at drivers
* Basic test infra
* compile clsp and test covenant layer
* lint
* Add test for match_covenant_layer
* Add tests for DID TP
* Add tests for DID backdoor
* Add tests for p2_puzzle_or_hidden_puzzle
* Change DID backdoor -> p2_puzzle_w_auth + did_puzzle_authorizer
* Add a VerifiedCredential class
* Make p2_puz_or_hidden_puz viral
* Add morpher solution to covenant layer
* Add capability to update the proofs of a VC
* update_proofs -> do_spend
* Finish lifecycle of VC
* Make backdoor puzzle, remove p2_puzzle_w_auth from stack
* Extract p2_puzzle_w_auth to its own files
* lint
* rework launch process so it works after revocation
* Add some extra tests for the final state after revocation
* Add cost logging
* slight opimizations
* python comments and ergonomic improvements
* Comments for chialisp
* Add VC wallet and store infra
* Add a negative test for updating proofs w/o DID
* First crack at CR CAT
* Turn two hashes into one
* Extract some shatrees out of puzzle hash creation
* Add a stager function
* Precalculate initial_singleton_inner_puzhash_hash
* Add another stager
* Refine stagers
* Add cost logging and assert provider is authorized
* Add sketched out CRCAT class
* black
* Test most of CRCAT drivers
* lint
* Remove an unnecessary param
* Don't commit to singleton ID in parent morpher
* Extract DID to ownership layer
* lint
* use intitial puzzle hash for covenant as proof to morpher
* Collapse hash of parent morhper
* Remove stagers
* Rename some params
* Use SELF_HASH construct
* remove dependency on shatree
* Minor optimization of curried hashes
* Balance tree
* hint -> remark
* Make a v2 ownership layer for cost-sake
* (WIP) Migrate to tp hash at ownership layer
* (WIP) Return tp_hash from tp
* use a stager again
* use constants for ints
* use more constants
* inline a function, get rid of constant
* Switch to tree metadata on ownership layer
* Impelement wallet launch vc
* Minor fixes and rename a bunch of stuff
* lint
* Fix tests
* First crack at proof checking
* Remove unused imports
* Merge tests to get better coverageg
* Fix is_vc methods
* pre-commit
* pre-commit again
* Implement VC spend
* make sql pre-commit check work with git worktrees
* CRCATWallet
* Comment reasoning in script file
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* Add a concept of VCProofs
* Show proofs in vc_get_vc_list as well
* Implememnt CRCAT wallet
* Extend lineage store
* Make tests pass
* WalletIdentifier fix
* Add revocation RPC
* forgotten bytes32
* Return coin name with vc record
* First crack at adding VC authorizations to offers
* Add CROuterPuzzle
* Fix wallet_funcs.py
* VCWallet changes only
* Fix wallet db schema test
* Add RPC client methods and tests
* Allow a path for user to clear VC
* Mint VC command
* Get VCs command
* Forgotten hex compilation
* Automatically fetch DID when we have it
* Update Proofs command
* Add Proof Reveal command
* Get Proofs For Root command
* Revoke VC command
* Chialisp pre-commit cleanup
* Deprecate as_python()
* Add a limit to some sql queries
* Fix some bad imports
* Fix changed wallet sync function
* Check for tail condition amounts in CAT spending
* Add RPC docs
* only need one mojo for a singleton
* Fix comment
* remove create_puzhash from add_new_wallet
* Remove create_tandam_xch_tx
* fix wallet_state_manager hinting
* Rename RPCs
* Use streamable classes for RPC request parsing
* add back accidentally deleted method call
* Remove unnecessary copy() call
* Add negative test for using wrong DID to update proofs/revoke vc
* Add negative test for making sure invalid proofs can't be proven
* Add negative test for trying to piggyback on top an unrelated VC spend
* Make output_amount a uint64
* some chialisp bug fixes
* chialisp readability improvements
* Force same provider on provider update of DID
* typo in EML
* Add vc_wallet folders to package list
* mypy
* Increase test coverage a bit
* Add a bit more coverage
* rework wallet creation
* Delete is_addition_relevant
* Coveralls ignores
* remove brick reference
* coveralls-ignore --> pragma: no cover
* Couple more ignores
* typo corrections
---------
Co-authored-by: ytx1991 <t.yu@chia.net>
Co-authored-by: Kyle Altendorf <sda@fstab.net>
* Drop unused `List[SubEpochSummary]` return
* Drop unused `SubEpochSummary` return
* Raise in `WalletWeightProofHandler.validate_weight_proof`
* Move validation logs
* Set the new weight proof inside `fetch_and_update_weight_proof`
Which was `fetch_and_validate_the_weight_proof` before.
* Drop `WalletWeightProofHandler._weight_proof_tasks`, just await them
Doesn't seem to make a lot sense to have a list of tasks where we always
just add a task, await it and remove it after. This happens in the long
sync so to parent task will cancel the awaited task anyway.
* Move some logs to `DEBUG` for disconnected peers
* Introduce `_add_coin_states` to log and cleanup cache in one place only
* Bail out early for disconnected peers in some places
* Consider renaming from #14460
* wallet: Improve coin state retry wait logic and improve retry store test
* Avoid sleeping after uncatched exceptions
* Sleep only at the beginning since we have reduced timeout now in tests
* Rename `new_coin_state` -> `add_coin_states` in `WalletStateManager
* Avoid redundant coin id calculations
* Don't `max`, just use `derivation_index` since its max by the condition
* Just get the children in the begining since we anyway always fetch them
* Don't pre-hint `existing`
* Adjust some logging
* Move `request_time` creation into `is_peer_synced`
* Pass in `height: uint32` instead of `header_block: HeaderBlock`
* Disconnect untrusted peers as soon as we have a synced trusted
* Add `test_long_sync_untrusted_break`
* Ignore already disconnected peers