* Add some more daemon "rpc" tests
* fixes due to some platform differences
* Add unlock_keyring tests and some experiments with monkeypatch
* rewrote simpler tests into single paramterized test
* add parameters to patch function
* Use monkeypatch.context for better isolation
* remove monkeypatch and test by deleting the keyring file
* remove now unused monkeypatch function
* changes from PR suggestions
* more readable parameterization per suggestions
* datacases
* description and id property
* swap description and route order
* *cases
---------
Co-authored-by: Kyle Altendorf <sda@fstab.net>
Includes:
Fix for joining a pool
Fix for creating a DID
Removal of a hardcoded default NFT limit (doesn't impact anything)
Fixes for WalletConnect pairing
madmax plotting fix when tmpdir2 isn't specified
* Exploring identical spend aggregation.
* Attempt to address review.
* Revert this.
* Explore spend-based processing instead of the bundle-based one.
* Attempt to address reviews.
* Update against chia_rs and add some improvements.
* Leverage the fact that we're in a function now to perform early exits.
* Explore propagating exceptions.
* Relax the exception handling.
* Add unit tests.
* Add some comments and perform some renames for more readability.
* Refactor tests and split them by scenario.
* Take Arvid's suggestion to simplify the check.
* Improve test readability.
* Make the set explicit instead of computing it with union().
* Run in MEMPOOL_MODE for cost and additions.
* Use int_from_bytes() instead of int.from_bytes().
* Add more unit tests for run_for_cost_and_additions (to cover coin amount 0 as well as a negative amount).
* Don't use as_python() for created coins.
* Account for the cost of create coin conditions and extract additions from the NPCResult.
* Rely on NPCResult for the maximum allowed cost.
* Stop looking for the relevant spend at the first occurrence (then process its created coins).
* Add a unit test for spending a coin in different ways then finding it spent in new peak.
This makes sure all mempool items that would spend that coin get removed.
* Parameterize the test for spending a coin in different ways then finding it spent in new peak, to account for both the optimized and the reorg code paths.
* Keep track of coin spends cost and additions in mempool items in case they won't make it into the block, so we don't rerun that again next time.
* Extend replace by fee tests with eligibility scenarios.
* Refactor find_duplicate_spends into get_deduplication_info and process_mempool_items into create_bundle_from_mempool_items.
Slightly refactor check_removals and create_bundle_from_mempool.
* Cast to uint64 in the return statement.
* Adapt to the recent addition of seq.
* Add unit tests for mempool items' bundle_coin_spends.
* Leverage the recently added make_test_conds when creating this npc_result.
* Pass in bundle_coin_spends and max_cost instead of InternalMempoolItem so that it remains internal.
* Add a test for the scenario where we pick a sub-optimal aggregation by deduplicating on solution A, seen in a relatively higher FPC item, then receiving better cost saving items on solution B after that one.
* Add some end-to-end tests for identical spend aggregation.
* Add a comment documenting why eligible_coin_spends map is ephemeral.
* 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>