-- 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
<!-- Merging Requirements:
- Please give your PR a title that is release-note friendly
- In order to be merged, you must add the most appropriate category
Label (Added, Changed, Fixed) to your PR
-->
<!-- Explain why this is an improvement (Does this add missing
functionality, improve performance, or reduce complexity?) -->
The modules `chia.protocols` and `chia.server` form a dependency loop.
This change at least removes the direct dependency of `chia.protocols`
on `chia.server`.
### Purpose:
<!-- Does this PR introduce a breaking change? -->
### Current Behavior:
### New Behavior:
<!-- As we aim for complete code coverage, please include details
regarding unit, and regression tests -->
### Testing Notes:
<!-- Attach any visual examples, or supporting evidence (attach any
.gif/video/console output below) -->
* bump chia_rs
* update db_graftroot test
* update SerializedProgram and Program use, to accommodate new chia_rs interface
* review comments
* review comments
---------
Co-authored-by: Matthew Howard <m.o.howard97@gmail.com>
* Add some checks when trying to join the same pool already joined
* Add test to test the specific cli case
* Remove line added during debugging
* Add test
* misc updates
* remove cli test
* final tests for joining same pool again
* Update check from code review
* update test framework
* Use click.ClickException for error
* Add check for wallet synced up front as the first thing checked for joining a pool
* Add test for unsynced RPC call
* Somewhat hacky workaounds for DIDs from other wallets
* cannot use set as not hashable
* Add a couple tests
* Change DIDCoinData to use bytes instead of bytes32
* Remove some unused code
* Remove some more unused code
* Make the alternate recovery did spendable I think
* Use Optional[bytes32] for DIDCoinData to show the list should be 32 bytes or nothing (where nothing is the NIL program)
* Replace specific test with parameterization of other tests to get more testing of the Alternate DIDs
* Empty commit for github
* minor formatting change
* No need to cast to bytes since as_atom returns bytes
* Port `test_nft_mint_from_did`
* Port `test_nft_mint_from_did_rpc`
* Collapse a test into a parametrization
* Ruff cleanup
* Port `test_nft_mint_from_did_multiple_xch`
* Port `test_nft_mint_from_xch`
* Port `test_nft_mint_from_xch_rpc`
* Port `test_nft_mint_from_xch_multiple_xch`
* Remove unnecessary DID code from XCH mint tests
* Collapse multiple tests into parametrization
* Collapse multiple tests into parametrization (and test fixes!)
* Collapse multiple tests into parametrization
* introduce create_block_generator2() to mempool, which picks transactions and compresses them incrementally, allowing us to fill blocks even when compressing
* improve test, comment and pragma no cover
* fix mempool test
* simplify item selection logic in create_block_generator2()
* add test coverage of timeout in create_block_generator2()
* address review comments
* fixup
* Standardize the `Wallet` API for `generate_signed_transaction`
* Some test fixes
* Fix `create_tandem_xch_tx`
* Fix the other `create_tandem_xch_tx`s
* More test fixes
* More test fixes
* Bad fix from last time
* Bring `VCWallet.generate_signed_transaction` into conformity with other wallets
* Bad default
* Standardize the `Wallet` API for `generate_signed_transaction`
* Some test fixes
* Fix `create_tandem_xch_tx`
* Fix the other `create_tandem_xch_tx`s
* More test fixes
* More test fixes
* Bad fix from last time
* add dependency for chia_puzzles_py
* migrate cat and dao wallets to new repo
* migrate did wallet
* more migration and deduplication
* change singleton launcher hash import in rpc
* stop importing singleton launcher from nft_puzzles in nft_wallet
* remove SINGLETON_LAUNCHER_PUZZLE import from nft_puzzles
* remove unused import
* ruff check and fix
* use graftroot dl offers from chia_puzzles_py
* get rid of more non explicit exports
* remove circular dependency
* ruff check
* migrate py files in puzzles to use chia_puzzles_py
* fix import
* fix more imports
* migrate clawback wallet and fix typo (requires version update of chia_puzzles_py)
* delete puzzles and separate nft puzzles from puzzle_utils
* use 0.19.1 version of chia_puzzles_py
* more nft puzzle detangling
* use latest chia_puzzles_py and migrate pools
* ruff fixes
* delete pool puzzles folder
* remove load_clvm from test_singleton and test_singleton_lifecycle_fast
* mypy fixes
* ruff fixes
* remove manage_clvm check precommit hook
* update version
* update chia_puzzles dependency to 0.19.4
* remove full_node puzzles
* remove test for condition codes
* change generator type to SerializedProgram
* remove remaining load_clvms that can be factored out
* delete consensus puzzles
* fix test_singleton_lifecycle_fast
* cast debug_spend_bundle coin name to bytes32
* ruff debug_spend_bundle
* update chia-puzzles and fix typo
* fix line endings
* fix typo in ROM_BOOTSTRAP_GENERATOR references
* remove bytes32 cast from debug_spend_bundle
* update chia-puzzles-py dependency to version 0.20.1 and refactor ACS_TRANSFER_PROGRAM initialization
* remove unused puzzle files
* singleton_top_layer exports hashs now which are imported from chia_puzzles
* remove .get_tree_hash() in favor of importing the hash
* remaining hash imports
* regenerate poetry.lock and pyproject.toml from main
* import singleton launcher hash from explicit export
* import SINGLETON_LAUNCHER_HASH from chia.wallet.singleton in test_pool_rpc.py
* import SINGLETON_MOD_HASH from chia.wallet.puzzles.singleton_top_layer in test_pool_puzzles_lifecycle.py
* poetry lock --no-update post-rebase
* re-regenerate lock file --no-update
* fix rebased block_tools
* put otherwise unheld tasks into the pit
* and the rest too
* cull less often
* task referencer
* private
* report unexpectedly unreferenced tasks
* also warn for automated catching in tests
* reporting task
* undo some
* fixup for 3.9
* ban asyncio.create_task
* oof
* simplify including using `Task.add_done_callback()` for culling
* Port `vc_mint`
* Port `vc_spend`
* Port `vc_revoke`
* Port `vc_get`
* Port `vc_get_list`
* Port `vc_add_proofs`
* Port `vc_get_proofs_for_root`
* address comments by @altendky
* chia plotnft CLI improvements
* use CliRpcConnectionError
* add check to show
* fix typo
* Update plotnft CLI to newer framework
* Fix help cut-paste error
* add test using new framework
* some minor fixes
* use click.Choice for pool/local option
* some click options
* Some more plotnft cli tests
* drop test_pool_cmdline from mypy-exclusions
* mypy fixes
* several fixes
* Add leave test
* join tests
* more join tests
* missing await
* Try setting config
* use root_path from NeedsWalletRPC
* linting
* Some cleanup
* Add claim tests
* Improved tests
* refactor some test code
* Add inspect tests
* Skip bad test for now
* Add in change payout tests
* quoting error
* Add test for get_login_link
* Add in a few negative tests for join
* Few more tests
* Experment with clirunner env overrides
* put back chia_root into context dict
* Some cleanup and one more test
* maybe final test
* some updates
* some dedup and reorg of test code
* run trusted and untrusted paramertization
* make reuse puzhash stuff work
* Add in required mock object for test_update_pool_config_new_config
* rearrange code per review comment - limit use of NeedsWalletRPC to chia_command
* Add in plotnft click parsing tests
* added ability to pass in obj to runner invoke
* Add in some more test cases
* fix up create issues with config
* Add in couple more test cases for error conditions
* Minor code cleanup
* Use long options for readability, minor code cleanup
* Use config file for farmer rpc port
* simplify code
* Add testing for prompt cases
* Add mocking for default_root_path
* context cleanup
* temp debugging output
* patch the proper object
* move some wallet fixtures into top level conftest and remove conftest import
* merge to origin/main