chia-blockchain 2.5.6rc2__py3-none-any.whl → 2.5.7rc2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- chia/_tests/blockchain/blockchain_test_utils.py +6 -7
- chia/_tests/blockchain/test_augmented_chain.py +4 -3
- chia/_tests/blockchain/test_blockchain.py +10 -5
- chia/_tests/clvm/coin_store.py +1 -1
- chia/_tests/cmds/cmd_test_utils.py +84 -97
- chia/_tests/cmds/test_dev_gh.py +1 -1
- chia/_tests/cmds/test_farm_cmd.py +56 -2
- chia/_tests/cmds/wallet/test_consts.py +3 -1
- chia/_tests/cmds/wallet/test_did.py +3 -8
- chia/_tests/cmds/wallet/test_nft.py +6 -6
- chia/_tests/cmds/wallet/test_notifications.py +39 -21
- chia/_tests/cmds/wallet/test_vcs.py +2 -1
- chia/_tests/cmds/wallet/test_wallet.py +160 -136
- chia/_tests/conftest.py +51 -26
- chia/_tests/core/cmds/test_wallet.py +4 -3
- chia/_tests/core/consensus/test_pot_iterations.py +71 -24
- chia/_tests/core/custom_types/test_proof_of_space.py +60 -30
- chia/_tests/core/custom_types/test_spend_bundle.py +1 -4
- chia/_tests/core/data_layer/conftest.py +7 -2
- chia/_tests/core/data_layer/old_format/__init__.py +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-005876c1cdc4d5f1726551b207b9f63efc9cd2f72df80a3a26a1ba73d40d6745-delta-23-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-005876c1cdc4d5f1726551b207b9f63efc9cd2f72df80a3a26a1ba73d40d6745-full-23-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-01b36e72a975cdc00d6514eea81668d19e8ea3150217ae98cb3361688a016fab-delta-9-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-01b36e72a975cdc00d6514eea81668d19e8ea3150217ae98cb3361688a016fab-full-9-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-06147c3b12d73e9b83b686a8c10b4a36a513c8a93c0ff99ae197f06326278be9-delta-5-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-06147c3b12d73e9b83b686a8c10b4a36a513c8a93c0ff99ae197f06326278be9-full-5-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-073c051a5934ad3b8db39eee2189e4300e55f48aaa17ff4ae30eeae088ff544a-delta-22-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-073c051a5934ad3b8db39eee2189e4300e55f48aaa17ff4ae30eeae088ff544a-full-22-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-0cc077559b9c7b4aefe8f8f591c195e0779bebdf89f2ad8285a00ea5f859d965-delta-1-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-0cc077559b9c7b4aefe8f8f591c195e0779bebdf89f2ad8285a00ea5f859d965-full-1-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-16377275567b723b20936d3f1ec0a2fd83f6ac379b922351a5e4c54949069f3b-delta-2-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-16377275567b723b20936d3f1ec0a2fd83f6ac379b922351a5e4c54949069f3b-full-2-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-1cb824a7a5f02cd30ac6c38e8f6216780d9bfa2d24811d282a368dcd541438a7-delta-29-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-1cb824a7a5f02cd30ac6c38e8f6216780d9bfa2d24811d282a368dcd541438a7-full-29-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-27b89dc4809ebc5a3b87757d35e95e2761d978cf121e44fa2773a5c06e4cc7b5-delta-28-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-27b89dc4809ebc5a3b87757d35e95e2761d978cf121e44fa2773a5c06e4cc7b5-full-28-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-28a6b7c134abfaeb0ab58a018313f6c87a61a40a4d9ec9bedf53aa1d12f3ee37-delta-7-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-28a6b7c134abfaeb0ab58a018313f6c87a61a40a4d9ec9bedf53aa1d12f3ee37-full-7-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-30a6bfe7cecbeda259a295dc6de3a436357f52388c3b03d86901e7da68565aeb-delta-19-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-30a6bfe7cecbeda259a295dc6de3a436357f52388c3b03d86901e7da68565aeb-full-19-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-343a2bf9add798e3ac2e6a571823cf9fa7e8a1bed532143354ead2648bd036ef-delta-10-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-343a2bf9add798e3ac2e6a571823cf9fa7e8a1bed532143354ead2648bd036ef-full-10-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4d90efbc1fb3df324193831ea4a57dd5e10e67d9653343eb18d178272adb0447-delta-17-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4d90efbc1fb3df324193831ea4a57dd5e10e67d9653343eb18d178272adb0447-full-17-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4dd2ea099e91635c441f40b36d3f84078a2d818d2dc601c7278e72cbdfe3eca8-delta-20-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4dd2ea099e91635c441f40b36d3f84078a2d818d2dc601c7278e72cbdfe3eca8-full-20-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-509effbdca78639023b933ce6c08a0465fb247e1cd5329e9e9c553940e4b6e46-delta-31-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-509effbdca78639023b933ce6c08a0465fb247e1cd5329e9e9c553940e4b6e46-full-31-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5379a4d9ff29c29d1ef0906d22e82c52472753d31806189ab813c43365341b78-delta-40-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5379a4d9ff29c29d1ef0906d22e82c52472753d31806189ab813c43365341b78-full-40-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-55908eda5686a8f89e4c50672cbe893ec1734fb23449dc03325efe7c414f9aa4-delta-49-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-55908eda5686a8f89e4c50672cbe893ec1734fb23449dc03325efe7c414f9aa4-full-49-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-57cc2691fb1fb986c99a58bcb0e029d0cd0cff41553d703147c54196d7d9ca63-delta-14-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-57cc2691fb1fb986c99a58bcb0e029d0cd0cff41553d703147c54196d7d9ca63-full-14-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5943bf8ae4f5e59969d8570e4f40a8223299febdcfbcf188b3b3e2ab11044e18-delta-34-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5943bf8ae4f5e59969d8570e4f40a8223299febdcfbcf188b3b3e2ab11044e18-full-34-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6518527b7c939bee60ce6b024cbe90d3b9d8913c56b8ce11a4df5da7ff7db1c8-delta-8-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6518527b7c939bee60ce6b024cbe90d3b9d8913c56b8ce11a4df5da7ff7db1c8-full-8-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-66ff26a26620379e14a7c91252d27ee4dbe06ad69a3a390a88642fe757f2b288-delta-45-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-66ff26a26620379e14a7c91252d27ee4dbe06ad69a3a390a88642fe757f2b288-full-45-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6bd0a508ee2c4afbe9d4daa811139fd6e54e7f4e16850cbce999fa30f8bdccd2-delta-6-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6bd0a508ee2c4afbe9d4daa811139fd6e54e7f4e16850cbce999fa30f8bdccd2-full-6-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6ce850d0d77ca743fcc2fc792747472e5d2c1c0813aa43abbb370554428fc897-delta-48-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6ce850d0d77ca743fcc2fc792747472e5d2c1c0813aa43abbb370554428fc897-full-48-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6eb4ca2e1552b156c5969396b49070eb08ad6c96b347359387519be59f7ccaed-delta-26-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6eb4ca2e1552b156c5969396b49070eb08ad6c96b347359387519be59f7ccaed-full-26-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-71c797fb7592d3f0a5a20c79ab8497ddaa0fd9ec17712e109d25c91b3f3c76e5-delta-3-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-71c797fb7592d3f0a5a20c79ab8497ddaa0fd9ec17712e109d25c91b3f3c76e5-full-3-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-73357026053d5a4969e7a6b9aeeef91c14cc6d5f32fc700fe6d21d2a1b22496c-delta-25-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-73357026053d5a4969e7a6b9aeeef91c14cc6d5f32fc700fe6d21d2a1b22496c-full-25-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-7c897e5c46e834ced65bde7de87716acfaa5dffbdb30b5cd9377d8c319df2034-delta-35-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-7c897e5c46e834ced65bde7de87716acfaa5dffbdb30b5cd9377d8c319df2034-full-35-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-87b8394d80d08117a5a1cd04ed8a682564eab7197a2c090159863591b5108874-delta-4-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-87b8394d80d08117a5a1cd04ed8a682564eab7197a2c090159863591b5108874-full-4-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-89eb40b9cc0921c5f5c3feb20927c13a9ada5760f82d219dcee153b7d400165c-delta-41-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-89eb40b9cc0921c5f5c3feb20927c13a9ada5760f82d219dcee153b7d400165c-full-41-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8b649433156b8c924436cdec9c6de26106fd6f73a0528570f48748f7b40d7f8a-delta-21-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8b649433156b8c924436cdec9c6de26106fd6f73a0528570f48748f7b40d7f8a-full-21-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8d364023a0834c8c3077e236a465493acbf488e4f9d1f4c6cc230343c10a8f7d-delta-42-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8d364023a0834c8c3077e236a465493acbf488e4f9d1f4c6cc230343c10a8f7d-full-42-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-925689e24a3d98d98676d816cdd8b73e7b2df057d9d4503da9b27bf91d79666c-delta-38-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-925689e24a3d98d98676d816cdd8b73e7b2df057d9d4503da9b27bf91d79666c-full-38-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-937be3d428b19f521be4f98faecc3307ae11ee731c76992f417fa4268d13859e-delta-11-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-937be3d428b19f521be4f98faecc3307ae11ee731c76992f417fa4268d13859e-full-11-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-97f34af499b79e2111fc296a598fc9654c2467ea038dfea41fd58241fb3642de-delta-32-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-97f34af499b79e2111fc296a598fc9654c2467ea038dfea41fd58241fb3642de-full-32-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-9d1b737243b8a1d0022f2b36ac53333c6280354a74d77f2a3642dcab35204e59-delta-33-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-9d1b737243b8a1d0022f2b36ac53333c6280354a74d77f2a3642dcab35204e59-full-33-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-a6663f98ef6ddf6db55f01163e34bb2e87aa82f0347e79ce31e8dbfa390c480c-delta-47-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-a6663f98ef6ddf6db55f01163e34bb2e87aa82f0347e79ce31e8dbfa390c480c-full-47-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-aa77376d1ccd3664e5c6366e010c52a978fedbf40f5ce262fee71b2e7fe0c6a9-delta-50-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-aa77376d1ccd3664e5c6366e010c52a978fedbf40f5ce262fee71b2e7fe0c6a9-full-50-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b0f28514741ed1a71f5c6544bf92f9e0e493c5f3cf28328909771d8404eff626-delta-24-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b0f28514741ed1a71f5c6544bf92f9e0e493c5f3cf28328909771d8404eff626-full-24-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b3efee5358e6eb89ab3b60db2d128d57eef39e8538fb63c5632412d4f8e7d09e-delta-44-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b3efee5358e6eb89ab3b60db2d128d57eef39e8538fb63c5632412d4f8e7d09e-full-44-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bb0b56b6eb7acbb4e80893b04c72412fe833418232e1ed7b06d97d7a7f08b4e1-delta-16-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bb0b56b6eb7acbb4e80893b04c72412fe833418232e1ed7b06d97d7a7f08b4e1-full-16-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bc45262b757ff494b53bd2a8fba0f5511cc1f9c2a2c5360e04ea8cebbf6409df-delta-13-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bc45262b757ff494b53bd2a8fba0f5511cc1f9c2a2c5360e04ea8cebbf6409df-full-13-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bd0494ba430aff13458b557113b073d226eaf11257dfe26ff3323fa1cfe1335b-delta-39-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bd0494ba430aff13458b557113b073d226eaf11257dfe26ff3323fa1cfe1335b-full-39-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cd04f5fbba1553fa728b4dd8131d4723aaac288e0c7dc080447fbf0872c0a6eb-delta-36-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cd04f5fbba1553fa728b4dd8131d4723aaac288e0c7dc080447fbf0872c0a6eb-full-36-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cdd2399557fb3163a848f08831fdc833703354edb19a0d32a965fdb140f160c2-delta-18-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cdd2399557fb3163a848f08831fdc833703354edb19a0d32a965fdb140f160c2-full-18-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cf7a08fca7b1332095242e4d9800f4b94a3f4eaae88fe8407da42736d54b9e18-delta-37-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cf7a08fca7b1332095242e4d9800f4b94a3f4eaae88fe8407da42736d54b9e18-full-37-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-d1f97465a9f52187e2ef3a0d811a1258f52380a65340c55f3e8e65b92753bc13-delta-15-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-d1f97465a9f52187e2ef3a0d811a1258f52380a65340c55f3e8e65b92753bc13-full-15-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e475eccd4ee597e5ff67b1a249e37d65d6e3f754c3f0379fdb43692513588fef-delta-46-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e475eccd4ee597e5ff67b1a249e37d65d6e3f754c3f0379fdb43692513588fef-full-46-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e82e63517d78fd65b23a05c3b9a98cf905ddad7026995a238bfe634006b84cd0-delta-27-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e82e63517d78fd65b23a05c3b9a98cf905ddad7026995a238bfe634006b84cd0-full-27-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-ed2cf0fd6c0f6237c87c161e1fca303b3fbe6c04e01f652b88720b4572143349-delta-12-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-ed2cf0fd6c0f6237c87c161e1fca303b3fbe6c04e01f652b88720b4572143349-full-12-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f6e454eaf24a83c46a7bed4c19260a0a3ce0ed5c51739cb6d748d4913dc2ef58-delta-30-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f6e454eaf24a83c46a7bed4c19260a0a3ce0ed5c51739cb6d748d4913dc2ef58-full-30-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f7ad2bdf86d9609b4d6381086ec1e296bf558e2ff467ead29dd7fa6e31bacc56-delta-43-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f7ad2bdf86d9609b4d6381086ec1e296bf558e2ff467ead29dd7fa6e31bacc56-full-43-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/__init__.py +0 -0
- chia/_tests/core/data_layer/old_format/old_db.sqlite +0 -0
- chia/_tests/core/data_layer/test_data_layer_util.py +18 -21
- chia/_tests/core/data_layer/test_data_rpc.py +77 -28
- chia/_tests/core/data_layer/test_data_store.py +637 -700
- chia/_tests/core/data_layer/test_data_store_schema.py +2 -209
- chia/_tests/core/full_node/ram_db.py +1 -1
- chia/_tests/core/full_node/stores/test_block_store.py +4 -10
- chia/_tests/core/full_node/stores/test_coin_store.py +1 -1
- chia/_tests/core/full_node/test_address_manager.py +3 -3
- chia/_tests/core/full_node/test_block_height_map.py +1 -1
- chia/_tests/core/full_node/test_full_node.py +91 -30
- chia/_tests/core/full_node/test_generator_tools.py +17 -10
- chia/_tests/core/mempool/test_mempool.py +190 -90
- chia/_tests/core/mempool/test_mempool_fee_estimator.py +2 -4
- chia/_tests/core/mempool/test_mempool_item_queries.py +1 -1
- chia/_tests/core/mempool/test_mempool_manager.py +134 -75
- chia/_tests/core/mempool/test_singleton_fast_forward.py +9 -27
- chia/_tests/core/server/serve.py +0 -2
- chia/_tests/core/server/test_rate_limits.py +400 -347
- chia/_tests/core/server/test_server.py +2 -2
- chia/_tests/core/services/test_services.py +7 -7
- chia/_tests/core/test_cost_calculation.py +31 -10
- chia/_tests/core/test_crawler.py +4 -4
- chia/_tests/core/test_db_conversion.py +7 -14
- chia/_tests/core/test_db_validation.py +2 -6
- chia/_tests/core/test_farmer_harvester_rpc.py +34 -1
- chia/_tests/core/test_full_node_rpc.py +28 -24
- chia/_tests/core/test_merkle_set.py +1 -4
- chia/_tests/core/test_seeder.py +1 -1
- chia/_tests/core/util/test_keychain.py +2 -2
- chia/_tests/core/util/test_lru_cache.py +16 -0
- chia/_tests/core/util/test_streamable.py +85 -4
- chia/_tests/environments/wallet.py +4 -1
- chia/_tests/farmer_harvester/test_farmer.py +8 -6
- chia/_tests/farmer_harvester/test_farmer_harvester.py +306 -8
- chia/_tests/farmer_harvester/test_filter_prefix_bits.py +3 -3
- chia/_tests/farmer_harvester/test_third_party_harvesters.py +11 -11
- chia/_tests/fee_estimation/test_fee_estimation_integration.py +2 -2
- chia/_tests/fee_estimation/test_fee_estimation_rpc.py +1 -1
- chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +1 -2
- chia/_tests/generator/test_rom.py +2 -1
- chia/_tests/harvester/__init__.py +0 -0
- chia/_tests/harvester/config.py +4 -0
- chia/_tests/harvester/test_harvester_api.py +157 -0
- chia/_tests/plot_sync/test_plot_sync.py +6 -3
- chia/_tests/plot_sync/test_receiver.py +16 -4
- chia/_tests/plot_sync/test_sender.py +8 -7
- chia/_tests/plot_sync/test_sync_simulated.py +15 -13
- chia/_tests/plot_sync/util.py +3 -2
- chia/_tests/plotting/test_plot_manager.py +21 -5
- chia/_tests/plotting/test_prover.py +106 -0
- chia/_tests/pools/test_pool_cmdline.py +7 -6
- chia/_tests/pools/test_pool_puzzles_lifecycle.py +10 -3
- chia/_tests/pools/test_pool_rpc.py +92 -64
- chia/_tests/solver/__init__.py +0 -0
- chia/_tests/solver/config.py +4 -0
- chia/_tests/solver/test_solver_service.py +29 -0
- chia/_tests/timelord/test_new_peak.py +1 -1
- chia/_tests/timelord/test_timelord.py +1 -1
- chia/_tests/util/benchmarks.py +5 -12
- chia/_tests/util/blockchain.py +1 -1
- chia/_tests/util/build_network_protocol_files.py +7 -0
- chia/_tests/util/network_protocol_data.py +26 -0
- chia/_tests/util/protocol_messages_bytes-v1.0 +0 -0
- chia/_tests/util/protocol_messages_json.py +19 -0
- chia/_tests/util/setup_nodes.py +21 -2
- chia/_tests/util/spend_sim.py +9 -3
- chia/_tests/util/test_condition_tools.py +3 -2
- chia/_tests/util/test_full_block_utils.py +10 -9
- chia/_tests/util/test_misc.py +10 -10
- chia/_tests/util/test_network.py +32 -1
- chia/_tests/util/test_network_protocol_files.py +333 -318
- chia/_tests/util/test_network_protocol_json.py +6 -0
- chia/_tests/util/test_network_protocol_test.py +27 -0
- chia/_tests/util/test_priority_mutex.py +1 -1
- chia/_tests/util/test_replace_str_to_bytes.py +6 -6
- chia/_tests/wallet/cat_wallet/test_cat_wallet.py +17 -13
- chia/_tests/wallet/cat_wallet/test_trades.py +55 -55
- chia/_tests/wallet/did_wallet/test_did.py +118 -1229
- chia/_tests/wallet/nft_wallet/config.py +1 -1
- chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +73 -96
- chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +15 -12
- chia/_tests/wallet/nft_wallet/test_nft_offers.py +67 -134
- chia/_tests/wallet/nft_wallet/test_nft_wallet.py +31 -26
- chia/_tests/wallet/rpc/test_wallet_rpc.py +765 -371
- chia/_tests/wallet/sync/test_wallet_sync.py +6 -0
- chia/_tests/wallet/test_new_wallet_protocol.py +1 -1
- chia/_tests/wallet/test_signer_protocol.py +2 -2
- chia/_tests/wallet/test_singleton_lifecycle_fast.py +3 -4
- chia/_tests/wallet/test_transaction_store.py +42 -33
- chia/_tests/wallet/test_wallet.py +22 -31
- chia/_tests/wallet/test_wallet_state_manager.py +14 -7
- chia/_tests/wallet/vc_wallet/test_vc_wallet.py +53 -32
- chia/apis.py +2 -0
- chia/cmds/beta.py +7 -3
- chia/cmds/chia.py +2 -0
- chia/cmds/cmd_classes.py +11 -27
- chia/cmds/cmds_util.py +3 -0
- chia/cmds/coin_funcs.py +27 -22
- chia/cmds/configure.py +42 -18
- chia/cmds/dev/data.py +22 -3
- chia/cmds/farm.py +32 -0
- chia/cmds/farm_funcs.py +54 -5
- chia/cmds/init_funcs.py +4 -0
- chia/cmds/keys_funcs.py +8 -10
- chia/cmds/peer_funcs.py +8 -10
- chia/cmds/plotnft_funcs.py +24 -16
- chia/cmds/rpc.py +11 -1
- chia/cmds/show_funcs.py +5 -5
- chia/cmds/solver.py +33 -0
- chia/cmds/solver_funcs.py +21 -0
- chia/cmds/wallet.py +1 -1
- chia/cmds/wallet_funcs.py +149 -96
- chia/consensus/block_body_validation.py +8 -9
- chia/consensus/block_creation.py +9 -10
- chia/consensus/block_header_validation.py +61 -69
- chia/{full_node → consensus}/block_height_map.py +2 -1
- chia/consensus/block_height_map_protocol.py +21 -0
- chia/consensus/block_rewards.py +12 -12
- chia/consensus/blockchain.py +8 -18
- chia/consensus/default_constants.py +6 -6
- chia/consensus/generator_tools.py +1 -1
- chia/consensus/get_block_challenge.py +24 -25
- chia/consensus/pos_quality.py +28 -2
- chia/consensus/pot_iterations.py +15 -17
- chia/daemon/keychain_proxy.py +5 -0
- chia/daemon/server.py +2 -3
- chia/data_layer/data_layer.py +32 -24
- chia/data_layer/data_layer_errors.py +5 -0
- chia/data_layer/data_layer_rpc_api.py +1 -1
- chia/data_layer/data_layer_service.py +8 -0
- chia/data_layer/data_layer_util.py +49 -89
- chia/data_layer/data_layer_wallet.py +20 -17
- chia/data_layer/data_store.py +1051 -1462
- chia/data_layer/download_data.py +44 -115
- chia/{server → data_layer}/start_data_layer.py +2 -1
- chia/data_layer/util/benchmark.py +38 -53
- chia/farmer/farmer.py +3 -0
- chia/farmer/farmer_api.py +104 -5
- chia/farmer/farmer_rpc_api.py +20 -0
- chia/farmer/farmer_rpc_client.py +6 -2
- chia/farmer/farmer_service.py +8 -0
- chia/{server → farmer}/start_farmer.py +4 -3
- chia/full_node/block_store.py +20 -10
- chia/full_node/coin_store.py +12 -4
- chia/full_node/eligible_coin_spends.py +17 -72
- chia/full_node/full_node.py +68 -71
- chia/full_node/full_node_api.py +26 -32
- chia/full_node/full_node_rpc_api.py +44 -32
- chia/full_node/full_node_rpc_client.py +67 -79
- chia/full_node/full_node_service.py +8 -0
- chia/full_node/full_node_store.py +5 -3
- chia/full_node/mempool.py +14 -14
- chia/full_node/mempool_manager.py +67 -89
- chia/{server → full_node}/start_full_node.py +1 -1
- chia/full_node/subscriptions.py +2 -2
- chia/full_node/weight_proof.py +14 -15
- chia/harvester/harvester.py +8 -1
- chia/harvester/harvester_api.py +178 -44
- chia/harvester/harvester_service.py +8 -0
- chia/{server → harvester}/start_harvester.py +1 -1
- chia/introducer/introducer_service.py +8 -0
- chia/{server → introducer}/start_introducer.py +1 -1
- chia/plot_sync/receiver.py +6 -1
- chia/plot_sync/sender.py +7 -4
- chia/plotting/cache.py +37 -28
- chia/plotting/check_plots.py +83 -48
- chia/plotting/create_plots.py +3 -4
- chia/plotting/manager.py +18 -13
- chia/plotting/prover.py +153 -0
- chia/plotting/util.py +14 -6
- chia/pools/pool_wallet.py +6 -4
- chia/protocols/harvester_protocol.py +14 -0
- chia/protocols/outbound_message.py +1 -0
- chia/protocols/pool_protocol.py +1 -1
- chia/protocols/protocol_message_types.py +7 -0
- chia/protocols/shared_protocol.py +2 -0
- chia/protocols/solver_protocol.py +18 -0
- chia/rpc/rpc_server.py +1 -1
- chia/seeder/crawl_store.py +4 -8
- chia/seeder/crawler.py +2 -2
- chia/seeder/crawler_service.py +8 -0
- chia/seeder/start_crawler.py +1 -1
- chia/server/address_manager.py +12 -15
- chia/server/introducer_peers.py +1 -1
- chia/server/node_discovery.py +9 -10
- chia/server/rate_limit_numbers.py +157 -168
- chia/server/rate_limits.py +44 -41
- chia/server/resolve_peer_info.py +5 -0
- chia/server/server.py +17 -7
- chia/server/start_service.py +0 -1
- chia/simulator/block_tools.py +92 -58
- chia/simulator/full_node_simulator.py +1 -1
- chia/simulator/setup_services.py +51 -15
- chia/solver/__init__.py +0 -0
- chia/solver/solver.py +100 -0
- chia/solver/solver_api.py +59 -0
- chia/solver/solver_rpc_api.py +31 -0
- chia/solver/solver_rpc_client.py +16 -0
- chia/solver/solver_service.py +8 -0
- chia/solver/start_solver.py +102 -0
- {mozilla-ca → chia/ssl}/cacert.pem +0 -27
- chia/ssl/create_ssl.py +3 -2
- chia/{server → timelord}/start_timelord.py +1 -1
- chia/timelord/timelord.py +12 -13
- chia/timelord/timelord_service.py +8 -0
- chia/types/blockchain_format/proof_of_space.py +61 -17
- chia/types/coin_spend.py +0 -8
- chia/types/internal_mempool_item.py +3 -3
- chia/types/mempool_item.py +15 -8
- chia/types/mempool_submission_status.py +1 -1
- chia/util/config.py +1 -3
- chia/util/db_wrapper.py +7 -8
- chia/util/initial-config.yaml +46 -0
- chia/util/lru_cache.py +8 -4
- chia/util/network.py +9 -0
- chia/util/service_groups.py +3 -1
- chia/util/streamable.py +38 -8
- chia/util/virtual_project_analysis.py +1 -1
- chia/wallet/cat_wallet/cat_outer_puzzle.py +7 -4
- chia/wallet/cat_wallet/cat_wallet.py +13 -7
- chia/wallet/cat_wallet/r_cat_wallet.py +4 -1
- chia/wallet/conditions.py +1 -3
- chia/wallet/did_wallet/did_wallet.py +27 -332
- chia/wallet/nft_wallet/nft_puzzle_utils.py +1 -1
- chia/wallet/nft_wallet/nft_wallet.py +9 -7
- chia/wallet/puzzle_drivers.py +7 -8
- chia/{server → wallet}/start_wallet.py +1 -1
- chia/wallet/trade_manager.py +12 -9
- chia/wallet/transaction_record.py +14 -51
- chia/wallet/util/clvm_streamable.py +28 -41
- chia/wallet/util/merkle_utils.py +2 -2
- chia/wallet/util/tx_config.py +3 -6
- chia/wallet/vc_wallet/cr_cat_wallet.py +12 -6
- chia/wallet/vc_wallet/vc_wallet.py +13 -15
- chia/wallet/wallet.py +5 -3
- chia/wallet/wallet_node.py +25 -30
- chia/wallet/wallet_request_types.py +538 -101
- chia/wallet/wallet_rpc_api.py +398 -570
- chia/wallet/wallet_rpc_client.py +144 -332
- chia/wallet/wallet_service.py +8 -0
- chia/wallet/wallet_state_manager.py +53 -42
- chia/wallet/wallet_transaction_store.py +13 -5
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info}/METADATA +31 -31
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info}/RECORD +369 -241
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info}/WHEEL +1 -1
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info}/entry_points.txt +8 -7
- chia/full_node/mempool_check_conditions.py +0 -102
- chia/server/aliases.py +0 -35
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info/licenses}/LICENSE +0 -0
|
@@ -7,7 +7,7 @@ from typing import Any, Callable, Optional
|
|
|
7
7
|
import pytest
|
|
8
8
|
from chia_rs import G2Element
|
|
9
9
|
from chia_rs.sized_bytes import bytes32
|
|
10
|
-
from chia_rs.sized_ints import uint64
|
|
10
|
+
from chia_rs.sized_ints import uint8, uint16, uint32, uint64
|
|
11
11
|
from typing_extensions import Literal
|
|
12
12
|
|
|
13
13
|
from chia._tests.environments.wallet import WalletEnvironment, WalletStateTransition, WalletTestFramework
|
|
@@ -31,6 +31,9 @@ from chia.wallet.vc_wallet.vc_store import VCProofs, VCRecord
|
|
|
31
31
|
from chia.wallet.wallet import Wallet
|
|
32
32
|
from chia.wallet.wallet_node import WalletNode
|
|
33
33
|
from chia.wallet.wallet_request_types import (
|
|
34
|
+
CATSpend,
|
|
35
|
+
GetTransactions,
|
|
36
|
+
GetWallets,
|
|
34
37
|
VCAddProofs,
|
|
35
38
|
VCGet,
|
|
36
39
|
VCGetList,
|
|
@@ -38,6 +41,7 @@ from chia.wallet.wallet_request_types import (
|
|
|
38
41
|
VCMint,
|
|
39
42
|
VCRevoke,
|
|
40
43
|
VCSpend,
|
|
44
|
+
WalletInfoResponse,
|
|
41
45
|
)
|
|
42
46
|
from chia.wallet.wallet_rpc_client import WalletRpcClient
|
|
43
47
|
from chia.wallet.wallet_spend_bundle import WalletSpendBundle
|
|
@@ -363,26 +367,32 @@ async def test_vc_lifecycle(wallet_environments: WalletTestFramework) -> None:
|
|
|
363
367
|
wallet_node_0.wallet_state_manager.main_wallet,
|
|
364
368
|
(await wallet_node_0.wallet_state_manager.get_all_wallet_info_entries(wallet_type=WalletType.CRCAT))[0],
|
|
365
369
|
)
|
|
366
|
-
assert
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
370
|
+
assert (
|
|
371
|
+
WalletInfoResponse(
|
|
372
|
+
data=bytes(cr_cat_wallet_0.info).hex(),
|
|
373
|
+
id=env_0.dealias_wallet_id("crcat"),
|
|
374
|
+
name=cr_cat_wallet_0.get_name(),
|
|
375
|
+
type=uint8(cr_cat_wallet_0.type()),
|
|
376
|
+
authorized_providers=cr_cat_wallet_0.info.authorized_providers,
|
|
377
|
+
flags_needed=cr_cat_wallet_0.info.proofs_checker.flags,
|
|
378
|
+
)
|
|
379
|
+
== (await client_0.get_wallets(GetWallets(type=uint16(cr_cat_wallet_0.type())))).wallets[0]
|
|
380
|
+
)
|
|
374
381
|
assert await wallet_node_0.wallet_state_manager.get_wallet_for_asset_id(cr_cat_wallet_0.get_asset_id()) is not None
|
|
375
382
|
async with wallet_1.wallet_state_manager.new_action_scope(wallet_environments.tx_config, push=True) as action_scope:
|
|
376
383
|
wallet_1_ph = await action_scope.get_puzzle_hash(wallet_1.wallet_state_manager)
|
|
377
384
|
wallet_1_addr = encode_puzzle_hash(wallet_1_ph, "txch")
|
|
378
385
|
txs = (
|
|
379
386
|
await client_0.cat_spend(
|
|
380
|
-
|
|
387
|
+
CATSpend(
|
|
388
|
+
wallet_id=cr_cat_wallet_0.id(),
|
|
389
|
+
amount=uint64(90),
|
|
390
|
+
inner_address=wallet_1_addr,
|
|
391
|
+
fee=uint64(2000000000),
|
|
392
|
+
memos=["hey"],
|
|
393
|
+
push=True,
|
|
394
|
+
),
|
|
381
395
|
wallet_environments.tx_config,
|
|
382
|
-
uint64(90),
|
|
383
|
-
wallet_1_addr,
|
|
384
|
-
uint64(2000000000),
|
|
385
|
-
memos=["hey"],
|
|
386
396
|
)
|
|
387
397
|
).transactions
|
|
388
398
|
await wallet_environments.process_pending_states(
|
|
@@ -449,13 +459,17 @@ async def test_vc_lifecycle(wallet_environments: WalletTestFramework) -> None:
|
|
|
449
459
|
assert await wallet_node_1.wallet_state_manager.wallets[env_1.dealias_wallet_id("crcat")].match_hinted_coin(
|
|
450
460
|
next(c for tx in txs for c in tx.additions if c.amount == 90), wallet_1_ph
|
|
451
461
|
)
|
|
452
|
-
pending_tx =
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
462
|
+
pending_tx = (
|
|
463
|
+
await client_1.get_transactions(
|
|
464
|
+
GetTransactions(
|
|
465
|
+
uint32(env_1.dealias_wallet_id("crcat")),
|
|
466
|
+
uint16(0),
|
|
467
|
+
uint16(1),
|
|
468
|
+
reverse=True,
|
|
469
|
+
type_filter=TransactionTypeFilter.include([TransactionType.INCOMING_CRCAT_PENDING]),
|
|
470
|
+
)
|
|
471
|
+
)
|
|
472
|
+
).transactions
|
|
459
473
|
assert len(pending_tx) == 1
|
|
460
474
|
|
|
461
475
|
# Send the VC to wallet_1 to use for the CR-CATs
|
|
@@ -547,10 +561,12 @@ async def test_vc_lifecycle(wallet_environments: WalletTestFramework) -> None:
|
|
|
547
561
|
# (Negative test) Try to spend a CR-CAT that we don't have a valid VC for
|
|
548
562
|
with pytest.raises(ValueError):
|
|
549
563
|
await client_0.cat_spend(
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
564
|
+
CATSpend(
|
|
565
|
+
wallet_id=cr_cat_wallet_0.id(),
|
|
566
|
+
amount=uint64(10),
|
|
567
|
+
inner_address=wallet_1_addr,
|
|
568
|
+
),
|
|
569
|
+
tx_config=wallet_environments.tx_config,
|
|
554
570
|
)
|
|
555
571
|
|
|
556
572
|
# Test melting a CRCAT
|
|
@@ -558,12 +574,17 @@ async def test_vc_lifecycle(wallet_environments: WalletTestFramework) -> None:
|
|
|
558
574
|
with wallet_environments.new_puzzle_hashes_allowed():
|
|
559
575
|
tx = (
|
|
560
576
|
await client_1.cat_spend(
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
577
|
+
CATSpend(
|
|
578
|
+
wallet_id=env_1.dealias_wallet_id("crcat"),
|
|
579
|
+
amount=uint64(20),
|
|
580
|
+
inner_address=wallet_1_addr,
|
|
581
|
+
fee=uint64(0),
|
|
582
|
+
extra_delta=str(-50),
|
|
583
|
+
tail_reveal=b"\x80",
|
|
584
|
+
tail_solution=b"\x80",
|
|
585
|
+
push=True,
|
|
586
|
+
),
|
|
587
|
+
tx_config=wallet_environments.tx_config,
|
|
567
588
|
)
|
|
568
589
|
).transaction
|
|
569
590
|
[tx] = await wallet_node_1.wallet_state_manager.add_pending_transactions([tx])
|
|
@@ -748,7 +769,7 @@ async def test_self_revoke(wallet_environments: WalletTestFramework) -> None:
|
|
|
748
769
|
async with did_wallet.wallet_state_manager.new_action_scope(
|
|
749
770
|
wallet_environments.tx_config, push=True
|
|
750
771
|
) as action_scope:
|
|
751
|
-
await did_wallet.transfer_did(bytes32.zeros, uint64(0),
|
|
772
|
+
await did_wallet.transfer_did(bytes32.zeros, uint64(0), action_scope)
|
|
752
773
|
|
|
753
774
|
await wallet_environments.process_pending_states(
|
|
754
775
|
[
|
chia/apis.py
CHANGED
|
@@ -6,6 +6,7 @@ from chia.harvester.harvester_api import HarvesterAPI
|
|
|
6
6
|
from chia.introducer.introducer_api import IntroducerAPI
|
|
7
7
|
from chia.protocols.outbound_message import NodeType
|
|
8
8
|
from chia.server.api_protocol import ApiProtocol
|
|
9
|
+
from chia.solver.solver_api import SolverAPI
|
|
9
10
|
from chia.timelord.timelord_api import TimelordAPI
|
|
10
11
|
from chia.wallet.wallet_node_api import WalletNodeAPI
|
|
11
12
|
|
|
@@ -16,4 +17,5 @@ ApiProtocolRegistry: dict[NodeType, type[ApiProtocol]] = {
|
|
|
16
17
|
NodeType.TIMELORD: TimelordAPI,
|
|
17
18
|
NodeType.FARMER: FarmerAPI,
|
|
18
19
|
NodeType.HARVESTER: HarvesterAPI,
|
|
20
|
+
NodeType.SOLVER: SolverAPI,
|
|
19
21
|
}
|
chia/cmds/beta.py
CHANGED
|
@@ -92,10 +92,14 @@ def enable_cmd(ctx: click.Context, force: bool, path: Optional[str]) -> None:
|
|
|
92
92
|
current_path = config.get("beta", {}).get("path")
|
|
93
93
|
current_path = None if current_path is None else Path(current_path)
|
|
94
94
|
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
path_to_use: Optional[Path] = None if path is None else Path(path)
|
|
96
|
+
if path_to_use is None:
|
|
97
|
+
path_to_use = current_path
|
|
98
|
+
|
|
99
|
+
if path_to_use is None:
|
|
100
|
+
beta_root_path = prompt_for_beta_path(default_beta_root_path())
|
|
97
101
|
else:
|
|
98
|
-
beta_root_path =
|
|
102
|
+
beta_root_path = path_to_use
|
|
99
103
|
validate_beta_path(beta_root_path)
|
|
100
104
|
|
|
101
105
|
update_beta_config(True, beta_root_path, metrics_log_interval_default, config)
|
chia/cmds/chia.py
CHANGED
|
@@ -24,6 +24,7 @@ from chia.cmds.plots import plots_cmd
|
|
|
24
24
|
from chia.cmds.plotters import plotters_cmd
|
|
25
25
|
from chia.cmds.rpc import rpc_cmd
|
|
26
26
|
from chia.cmds.show import show_cmd
|
|
27
|
+
from chia.cmds.solver import solver_cmd
|
|
27
28
|
from chia.cmds.start import start_cmd
|
|
28
29
|
from chia.cmds.stop import stop_cmd
|
|
29
30
|
from chia.cmds.wallet import wallet_cmd
|
|
@@ -127,6 +128,7 @@ cli.add_command(configure_cmd)
|
|
|
127
128
|
cli.add_command(init_cmd)
|
|
128
129
|
cli.add_command(rpc_cmd)
|
|
129
130
|
cli.add_command(show_cmd)
|
|
131
|
+
cli.add_command(solver_cmd)
|
|
130
132
|
cli.add_command(start_cmd)
|
|
131
133
|
cli.add_command(stop_cmd)
|
|
132
134
|
cli.add_command(netspace_cmd)
|
chia/cmds/cmd_classes.py
CHANGED
|
@@ -5,7 +5,6 @@ import collections
|
|
|
5
5
|
import dataclasses
|
|
6
6
|
import inspect
|
|
7
7
|
import pathlib
|
|
8
|
-
import sys
|
|
9
8
|
from dataclasses import MISSING, dataclass, field, fields
|
|
10
9
|
from typing import (
|
|
11
10
|
Any,
|
|
@@ -45,12 +44,6 @@ ChiaCommand = Union[SyncChiaCommand, AsyncChiaCommand]
|
|
|
45
44
|
|
|
46
45
|
|
|
47
46
|
def option(*param_decls: str, **kwargs: Any) -> Any:
|
|
48
|
-
if sys.version_info >= (3, 10):
|
|
49
|
-
default_default = MISSING
|
|
50
|
-
else: # versions < 3.10 don't know about kw_only and they complain about lacks of defaults
|
|
51
|
-
# Can't get coverage on this because we only test on one version
|
|
52
|
-
default_default = None # pragma: no cover
|
|
53
|
-
|
|
54
47
|
return field(
|
|
55
48
|
metadata=dict(
|
|
56
49
|
option_args=dict(
|
|
@@ -58,7 +51,7 @@ def option(*param_decls: str, **kwargs: Any) -> Any:
|
|
|
58
51
|
**kwargs,
|
|
59
52
|
),
|
|
60
53
|
),
|
|
61
|
-
default=kwargs.get("default",
|
|
54
|
+
default=kwargs.get("default", MISSING),
|
|
62
55
|
)
|
|
63
56
|
|
|
64
57
|
|
|
@@ -181,10 +174,10 @@ def _generate_command_parser(cls: type[ChiaCommand]) -> _CommandParsingStage:
|
|
|
181
174
|
needs_context: bool = False
|
|
182
175
|
|
|
183
176
|
hints = get_type_hints(cls)
|
|
184
|
-
|
|
177
|
+
cls_fields = fields(cls) # type: ignore[arg-type]
|
|
185
178
|
|
|
186
|
-
for
|
|
187
|
-
field_name =
|
|
179
|
+
for cls_field in cls_fields:
|
|
180
|
+
field_name = cls_field.name
|
|
188
181
|
if getattr(hints[field_name], COMMAND_HELPER_ATTRIBUTE_NAME, False):
|
|
189
182
|
members[field_name] = _generate_command_parser(hints[field_name])
|
|
190
183
|
elif field_name == "context":
|
|
@@ -193,9 +186,9 @@ def _generate_command_parser(cls: type[ChiaCommand]) -> _CommandParsingStage:
|
|
|
193
186
|
else:
|
|
194
187
|
needs_context = True
|
|
195
188
|
kwarg_names.append(field_name)
|
|
196
|
-
elif "option_args" in
|
|
189
|
+
elif "option_args" in cls_field.metadata:
|
|
197
190
|
option_args: dict[str, Any] = {"multiple": False, "required": False}
|
|
198
|
-
option_args.update(
|
|
191
|
+
option_args.update(cls_field.metadata["option_args"])
|
|
199
192
|
|
|
200
193
|
if "type" not in option_args:
|
|
201
194
|
origin = get_origin(hints[field_name])
|
|
@@ -270,16 +263,10 @@ def chia_command(
|
|
|
270
263
|
def _chia_command(cls: type[ChiaCommand]) -> type[ChiaCommand]:
|
|
271
264
|
# The type ignores here are largely due to the fact that the class information is not preserved after being
|
|
272
265
|
# passed through the dataclass wrapper. Not sure what to do about this right now.
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
)(cls)
|
|
278
|
-
else: # pragma: no cover
|
|
279
|
-
# stuff below 3.10 doesn't know about kw_only
|
|
280
|
-
wrapped_cls: type[ChiaCommand] = dataclass(
|
|
281
|
-
frozen=True,
|
|
282
|
-
)(cls)
|
|
266
|
+
wrapped_cls: type[ChiaCommand] = dataclass(
|
|
267
|
+
frozen=True,
|
|
268
|
+
kw_only=True,
|
|
269
|
+
)(cls)
|
|
283
270
|
|
|
284
271
|
metadata = Metadata(
|
|
285
272
|
command=click.command(
|
|
@@ -316,9 +303,6 @@ def get_chia_command_metadata(cls: type[ChiaCommand]) -> Metadata:
|
|
|
316
303
|
|
|
317
304
|
@dataclass_transform(frozen_default=True)
|
|
318
305
|
def command_helper(cls: type[Any]) -> type[Any]:
|
|
319
|
-
|
|
320
|
-
new_cls = dataclass(frozen=True, kw_only=True)(cls)
|
|
321
|
-
else: # stuff below 3.10 doesn't support kw_only
|
|
322
|
-
new_cls = dataclass(frozen=True)(cls) # pragma: no cover
|
|
306
|
+
new_cls = dataclass(frozen=True, kw_only=True)(cls)
|
|
323
307
|
setattr(new_cls, COMMAND_HELPER_ATTRIBUTE_NAME, True)
|
|
324
308
|
return new_cls
|
chia/cmds/cmds_util.py
CHANGED
|
@@ -23,6 +23,7 @@ from chia.full_node.full_node_rpc_client import FullNodeRpcClient
|
|
|
23
23
|
from chia.harvester.harvester_rpc_client import HarvesterRpcClient
|
|
24
24
|
from chia.rpc.rpc_client import ResponseFailureError, RpcClient
|
|
25
25
|
from chia.simulator.simulator_full_node_rpc_client import SimulatorFullNodeRpcClient
|
|
26
|
+
from chia.solver.solver_rpc_client import SolverRpcClient
|
|
26
27
|
from chia.types.mempool_submission_status import MempoolSubmissionStatus
|
|
27
28
|
from chia.util.config import load_config
|
|
28
29
|
from chia.util.errors import CliRpcConnectionError, InvalidPathError
|
|
@@ -42,6 +43,7 @@ NODE_TYPES: dict[str, type[RpcClient]] = {
|
|
|
42
43
|
"harvester": HarvesterRpcClient,
|
|
43
44
|
"data_layer": DataLayerRpcClient,
|
|
44
45
|
"simulator": SimulatorFullNodeRpcClient,
|
|
46
|
+
"solver": SolverRpcClient,
|
|
45
47
|
}
|
|
46
48
|
|
|
47
49
|
node_config_section_names: dict[type[RpcClient], str] = {
|
|
@@ -52,6 +54,7 @@ node_config_section_names: dict[type[RpcClient], str] = {
|
|
|
52
54
|
HarvesterRpcClient: "harvester",
|
|
53
55
|
DataLayerRpcClient: "data_layer",
|
|
54
56
|
SimulatorFullNodeRpcClient: "full_node",
|
|
57
|
+
SolverRpcClient: "solver",
|
|
55
58
|
}
|
|
56
59
|
|
|
57
60
|
_T_RpcClient = TypeVar("_T_RpcClient", bound=RpcClient)
|
chia/cmds/coin_funcs.py
CHANGED
|
@@ -18,7 +18,7 @@ from chia.util.config import selected_network_address_prefix
|
|
|
18
18
|
from chia.wallet.conditions import ConditionValidTimes
|
|
19
19
|
from chia.wallet.transaction_record import TransactionRecord
|
|
20
20
|
from chia.wallet.util.wallet_types import WalletType
|
|
21
|
-
from chia.wallet.wallet_request_types import CombineCoins, SplitCoins
|
|
21
|
+
from chia.wallet.wallet_request_types import CombineCoins, GetCoinRecordsByNames, GetSpendableCoins, SplitCoins
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
async def async_list(
|
|
@@ -44,23 +44,28 @@ async def async_list(
|
|
|
44
44
|
if not (await client_info.client.get_sync_status()).synced:
|
|
45
45
|
print("Wallet not synced. Please wait.")
|
|
46
46
|
return
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
47
|
+
response = await client_info.client.get_spendable_coins(
|
|
48
|
+
GetSpendableCoins.from_coin_selection_config(
|
|
49
|
+
wallet_id=uint32(wallet_id),
|
|
50
|
+
coin_selection_config=CMDCoinSelectionConfigLoader(
|
|
51
|
+
max_coin_amount=max_coin_amount,
|
|
52
|
+
min_coin_amount=min_coin_amount,
|
|
53
|
+
excluded_coin_amounts=list(excluded_amounts),
|
|
54
|
+
excluded_coin_ids=list(excluded_coin_ids),
|
|
55
|
+
).to_coin_selection_config(mojo_per_unit),
|
|
56
|
+
)
|
|
57
|
+
)
|
|
58
|
+
print(
|
|
59
|
+
f"There are a total of {len(response.confirmed_records) + len(response.unconfirmed_additions)}"
|
|
60
|
+
f" coins in wallet {wallet_id}."
|
|
55
61
|
)
|
|
56
|
-
print(f"
|
|
57
|
-
print(f"{len(
|
|
58
|
-
print(f"{len(
|
|
59
|
-
print(f"{len(unconfirmed_removals)} unconfirmed removals.")
|
|
62
|
+
print(f"{len(response.confirmed_records)} confirmed coins.")
|
|
63
|
+
print(f"{len(response.unconfirmed_additions)} unconfirmed additions.")
|
|
64
|
+
print(f"{len(response.unconfirmed_removals)} unconfirmed removals.")
|
|
60
65
|
print("Confirmed coins:")
|
|
61
66
|
print_coins(
|
|
62
67
|
"\tAddress: {} Amount: {}, Confirmed in block: {}\n",
|
|
63
|
-
[(cr.coin, str(cr.confirmed_block_index)) for cr in
|
|
68
|
+
[(cr.coin, str(cr.confirmed_block_index)) for cr in response.confirmed_records],
|
|
64
69
|
mojo_per_unit,
|
|
65
70
|
addr_prefix,
|
|
66
71
|
paginate,
|
|
@@ -69,7 +74,7 @@ async def async_list(
|
|
|
69
74
|
print("\nUnconfirmed Removals:")
|
|
70
75
|
print_coins(
|
|
71
76
|
"\tPrevious Address: {} Amount: {}, Confirmed in block: {}\n",
|
|
72
|
-
[(cr.coin, str(cr.confirmed_block_index)) for cr in unconfirmed_removals],
|
|
77
|
+
[(cr.coin, str(cr.confirmed_block_index)) for cr in response.unconfirmed_removals],
|
|
73
78
|
mojo_per_unit,
|
|
74
79
|
addr_prefix,
|
|
75
80
|
paginate,
|
|
@@ -77,7 +82,7 @@ async def async_list(
|
|
|
77
82
|
print("\nUnconfirmed Additions:")
|
|
78
83
|
print_coins(
|
|
79
84
|
"\tNew Address: {} Amount: {}, Not yet confirmed in a block.{}\n",
|
|
80
|
-
[(coin, "") for coin in unconfirmed_additions],
|
|
85
|
+
[(coin, "") for coin in response.unconfirmed_additions],
|
|
81
86
|
mojo_per_unit,
|
|
82
87
|
addr_prefix,
|
|
83
88
|
paginate,
|
|
@@ -217,19 +222,19 @@ async def async_split(
|
|
|
217
222
|
return []
|
|
218
223
|
|
|
219
224
|
if number_of_coins is None:
|
|
220
|
-
|
|
221
|
-
if len(
|
|
225
|
+
response = await client_info.client.get_coin_records_by_names(GetCoinRecordsByNames([target_coin_id]))
|
|
226
|
+
if len(response.coin_records) == 0:
|
|
222
227
|
print("Could not find target coin.")
|
|
223
228
|
return []
|
|
224
229
|
assert amount_per_coin is not None
|
|
225
|
-
number_of_coins = int(
|
|
230
|
+
number_of_coins = int(response.coin_records[0].coin.amount // amount_per_coin.convert_amount(mojo_per_unit))
|
|
226
231
|
elif amount_per_coin is None:
|
|
227
|
-
|
|
228
|
-
if len(
|
|
232
|
+
response = await client_info.client.get_coin_records_by_names(GetCoinRecordsByNames([target_coin_id]))
|
|
233
|
+
if len(response.coin_records) == 0:
|
|
229
234
|
print("Could not find target coin.")
|
|
230
235
|
return []
|
|
231
236
|
assert number_of_coins is not None
|
|
232
|
-
amount_per_coin = CliAmount(True, uint64(
|
|
237
|
+
amount_per_coin = CliAmount(True, uint64(response.coin_records[0].coin.amount // number_of_coins))
|
|
233
238
|
|
|
234
239
|
final_amount_per_coin = amount_per_coin.convert_amount(mojo_per_unit)
|
|
235
240
|
|
chia/cmds/configure.py
CHANGED
|
@@ -16,11 +16,13 @@ from chia.util.config import (
|
|
|
16
16
|
save_config,
|
|
17
17
|
str2bool,
|
|
18
18
|
)
|
|
19
|
+
from chia.util.network import parse_host_port
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
def configure(
|
|
22
23
|
root_path: Path,
|
|
23
24
|
set_farmer_peer: str,
|
|
25
|
+
set_solver_peer: str,
|
|
24
26
|
set_node_introducer: str,
|
|
25
27
|
set_fullnode_port: str,
|
|
26
28
|
set_harvester_port: str,
|
|
@@ -34,6 +36,7 @@ def configure(
|
|
|
34
36
|
crawler_minimum_version_count: Optional[int],
|
|
35
37
|
seeder_domain_name: str,
|
|
36
38
|
seeder_nameserver: str,
|
|
39
|
+
set_solver_trusted_peers_only: str,
|
|
37
40
|
) -> None:
|
|
38
41
|
config_yaml = "config.yaml"
|
|
39
42
|
with lock_and_load_config(root_path, config_yaml, fill_missing_services=True) as config:
|
|
@@ -42,30 +45,41 @@ def configure(
|
|
|
42
45
|
change_made = False
|
|
43
46
|
if set_node_introducer:
|
|
44
47
|
try:
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
config["full_node"]["introducer_peer"]["port"] = int(port)
|
|
52
|
-
config["introducer"]["port"] = int(port)
|
|
53
|
-
print("Node introducer updated")
|
|
54
|
-
change_made = True
|
|
48
|
+
host, port = parse_host_port(set_node_introducer)
|
|
49
|
+
config["full_node"]["introducer_peer"]["host"] = host
|
|
50
|
+
config["full_node"]["introducer_peer"]["port"] = port
|
|
51
|
+
config["introducer"]["port"] = port
|
|
52
|
+
print("Node introducer updated")
|
|
53
|
+
change_made = True
|
|
55
54
|
except ValueError:
|
|
56
55
|
print("Node introducer address must be in format [IP:Port]")
|
|
57
56
|
if set_farmer_peer:
|
|
58
57
|
try:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
)
|
|
64
|
-
set_peer_info(config["harvester"], peer_type=NodeType.FARMER, peer_host=host, peer_port=int(port))
|
|
65
|
-
print("Farmer peer updated, make sure your harvester has the proper cert installed")
|
|
66
|
-
change_made = True
|
|
58
|
+
host, port = parse_host_port(set_farmer_peer)
|
|
59
|
+
set_peer_info(config["harvester"], peer_type=NodeType.FARMER, peer_host=host, peer_port=port)
|
|
60
|
+
print("Farmer peer updated, make sure your harvester has the proper cert installed")
|
|
61
|
+
change_made = True
|
|
67
62
|
except ValueError:
|
|
68
63
|
print("Farmer address must be in format [IP:Port]")
|
|
64
|
+
if set_solver_peer:
|
|
65
|
+
try:
|
|
66
|
+
host, port = parse_host_port(set_solver_peer)
|
|
67
|
+
# ensure farmer section has solver_peers field
|
|
68
|
+
if "solver_peers" not in config["farmer"]:
|
|
69
|
+
config["farmer"]["solver_peers"] = []
|
|
70
|
+
# Set single solver peer (overrides any existing)
|
|
71
|
+
config["farmer"]["solver_peers"] = [{"host": host, "port": port}]
|
|
72
|
+
print(f"Solver peer updated to {host}:{port}")
|
|
73
|
+
change_made = True
|
|
74
|
+
except ValueError:
|
|
75
|
+
print("Solver address must be in format [IP:Port]")
|
|
76
|
+
if set_solver_trusted_peers_only:
|
|
77
|
+
config["solver"]["trusted_peers_only"] = str2bool(set_solver_trusted_peers_only)
|
|
78
|
+
if str2bool(set_solver_trusted_peers_only):
|
|
79
|
+
print("Solver will only accept trusted peer connections")
|
|
80
|
+
else:
|
|
81
|
+
print("Solver will accept connections from all peers")
|
|
82
|
+
change_made = True
|
|
69
83
|
if set_fullnode_port:
|
|
70
84
|
config["full_node"]["port"] = int(set_fullnode_port)
|
|
71
85
|
config["full_node"]["introducer_peer"]["port"] = int(set_fullnode_port)
|
|
@@ -244,6 +258,12 @@ def configure(
|
|
|
244
258
|
)
|
|
245
259
|
@click.option("--set-node-introducer", help="Set the introducer for node - IP:Port", type=str)
|
|
246
260
|
@click.option("--set-farmer-peer", help="Set the farmer peer for harvester - IP:Port", type=str)
|
|
261
|
+
@click.option("--set-solver-peer", help="Set the solver peer for farmer - IP:Port", type=str)
|
|
262
|
+
@click.option(
|
|
263
|
+
"--set-solver-trusted-peers-only",
|
|
264
|
+
help="Enable/disable trusted peer requirement for solver connections",
|
|
265
|
+
type=click.Choice(["true", "t", "false", "f"]),
|
|
266
|
+
)
|
|
247
267
|
@click.option(
|
|
248
268
|
"--set-fullnode-port",
|
|
249
269
|
help="Set the port to use for the fullnode, useful for testing",
|
|
@@ -299,6 +319,7 @@ def configure(
|
|
|
299
319
|
def configure_cmd(
|
|
300
320
|
ctx: click.Context,
|
|
301
321
|
set_farmer_peer: str,
|
|
322
|
+
set_solver_peer: str,
|
|
302
323
|
set_node_introducer: str,
|
|
303
324
|
set_fullnode_port: str,
|
|
304
325
|
set_harvester_port: str,
|
|
@@ -312,10 +333,12 @@ def configure_cmd(
|
|
|
312
333
|
crawler_minimum_version_count: int,
|
|
313
334
|
seeder_domain_name: str,
|
|
314
335
|
seeder_nameserver: str,
|
|
336
|
+
set_solver_trusted_peers_only: str,
|
|
315
337
|
) -> None:
|
|
316
338
|
configure(
|
|
317
339
|
ChiaCliContext.set_default(ctx).root_path,
|
|
318
340
|
set_farmer_peer,
|
|
341
|
+
set_solver_peer,
|
|
319
342
|
set_node_introducer,
|
|
320
343
|
set_fullnode_port,
|
|
321
344
|
set_harvester_port,
|
|
@@ -329,4 +352,5 @@ def configure_cmd(
|
|
|
329
352
|
crawler_minimum_version_count,
|
|
330
353
|
seeder_domain_name,
|
|
331
354
|
seeder_nameserver,
|
|
355
|
+
set_solver_trusted_peers_only,
|
|
332
356
|
)
|
chia/cmds/dev/data.py
CHANGED
|
@@ -23,7 +23,7 @@ from chia.cmds.cmd_classes import ChiaCliContext, chia_command, option
|
|
|
23
23
|
from chia.cmds.cmd_helpers import NeedsWalletRPC
|
|
24
24
|
from chia.data_layer.data_layer import server_files_path_from_config
|
|
25
25
|
from chia.data_layer.data_layer_util import ServerInfo, Status, Subscription
|
|
26
|
-
from chia.data_layer.data_store import DataStore
|
|
26
|
+
from chia.data_layer.data_store import DataStore, default_prefer_file_kv_blob_length
|
|
27
27
|
from chia.data_layer.download_data import insert_from_delta_file
|
|
28
28
|
from chia.util.chia_logging import initialize_logging
|
|
29
29
|
from chia.util.config import load_config
|
|
@@ -78,6 +78,11 @@ class SyncTimeCommand:
|
|
|
78
78
|
profile_tasks: bool = option("--profile-tasks/--no-profile-tasks")
|
|
79
79
|
restart_all: bool = option("--restart-all/--no-restart-all")
|
|
80
80
|
working_path: Optional[Path] = option("--working-path", default=None)
|
|
81
|
+
prefer_db_kv_blob_length: int = option(
|
|
82
|
+
"--prefer-db-kv-blob-length",
|
|
83
|
+
default=default_prefer_file_kv_blob_length,
|
|
84
|
+
type=int,
|
|
85
|
+
)
|
|
81
86
|
|
|
82
87
|
async def run(self) -> None:
|
|
83
88
|
config = load_config(self.context.root_path, "config.yaml", "data_layer", fill_missing_services=True)
|
|
@@ -104,14 +109,28 @@ class SyncTimeCommand:
|
|
|
104
109
|
working_path = self.working_path
|
|
105
110
|
working_path.mkdir(parents=True, exist_ok=True)
|
|
106
111
|
|
|
112
|
+
print_date(f"working in: {working_path}")
|
|
113
|
+
|
|
107
114
|
database_path = working_path.joinpath("datalayer.sqlite")
|
|
108
|
-
|
|
115
|
+
|
|
116
|
+
merkle_blob_path = working_path.joinpath("merkle-blobs")
|
|
117
|
+
merkle_blob_path.mkdir(parents=True, exist_ok=True)
|
|
118
|
+
|
|
119
|
+
key_value_blob_path = working_path.joinpath("key-value-blobs")
|
|
120
|
+
key_value_blob_path.mkdir(parents=True, exist_ok=True)
|
|
109
121
|
|
|
110
122
|
wallet_client_info = await exit_stack.enter_async_context(self.wallet_rpc_info.wallet_rpc())
|
|
111
123
|
wallet_rpc = wallet_client_info.client
|
|
112
124
|
await wallet_rpc.dl_track_new(DLTrackNew(launcher_id=self.store_id))
|
|
113
125
|
|
|
114
|
-
data_store = await exit_stack.enter_async_context(
|
|
126
|
+
data_store = await exit_stack.enter_async_context(
|
|
127
|
+
DataStore.managed(
|
|
128
|
+
database=database_path,
|
|
129
|
+
merkle_blobs_path=merkle_blob_path,
|
|
130
|
+
key_value_blobs_path=key_value_blob_path,
|
|
131
|
+
prefer_db_kv_blob_length=self.prefer_db_kv_blob_length,
|
|
132
|
+
)
|
|
133
|
+
)
|
|
115
134
|
|
|
116
135
|
await data_store.subscribe(subscription=Subscription(store_id=self.store_id, servers_info=[]))
|
|
117
136
|
|
chia/cmds/farm.py
CHANGED
|
@@ -49,6 +49,13 @@ def farm_cmd() -> None:
|
|
|
49
49
|
default=None,
|
|
50
50
|
show_default=True,
|
|
51
51
|
)
|
|
52
|
+
@click.option(
|
|
53
|
+
"-i",
|
|
54
|
+
"--include-pool-rewards",
|
|
55
|
+
help="Include pool farming rewards in the total farmed amount",
|
|
56
|
+
is_flag=True,
|
|
57
|
+
default=False,
|
|
58
|
+
)
|
|
52
59
|
@click.pass_context
|
|
53
60
|
def summary_cmd(
|
|
54
61
|
ctx: click.Context,
|
|
@@ -56,6 +63,7 @@ def summary_cmd(
|
|
|
56
63
|
wallet_rpc_port: Optional[int],
|
|
57
64
|
harvester_rpc_port: Optional[int],
|
|
58
65
|
farmer_rpc_port: Optional[int],
|
|
66
|
+
include_pool_rewards: bool,
|
|
59
67
|
) -> None:
|
|
60
68
|
import asyncio
|
|
61
69
|
|
|
@@ -67,6 +75,7 @@ def summary_cmd(
|
|
|
67
75
|
wallet_rpc_port,
|
|
68
76
|
harvester_rpc_port,
|
|
69
77
|
farmer_rpc_port,
|
|
78
|
+
include_pool_rewards,
|
|
70
79
|
root_path=ChiaCliContext.set_default(ctx).root_path,
|
|
71
80
|
)
|
|
72
81
|
)
|
|
@@ -96,3 +105,26 @@ def challenges_cmd(ctx: click.Context, farmer_rpc_port: Optional[int], limit: in
|
|
|
96
105
|
from chia.cmds.farm_funcs import challenges
|
|
97
106
|
|
|
98
107
|
asyncio.run(challenges(ChiaCliContext.set_default(ctx).root_path, farmer_rpc_port, limit))
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
@farm_cmd.command("connect-solver", help="Connect to a solver")
|
|
111
|
+
@click.option(
|
|
112
|
+
"-fp",
|
|
113
|
+
"--farmer-rpc-port",
|
|
114
|
+
help="Set the port where the Farmer is hosting the RPC interface",
|
|
115
|
+
type=int,
|
|
116
|
+
default=None,
|
|
117
|
+
show_default=True,
|
|
118
|
+
)
|
|
119
|
+
@click.argument("solver_address", required=True)
|
|
120
|
+
@click.pass_context
|
|
121
|
+
def connect_solver_cmd(
|
|
122
|
+
ctx: click.Context,
|
|
123
|
+
farmer_rpc_port: Optional[int],
|
|
124
|
+
solver_address: str,
|
|
125
|
+
) -> None:
|
|
126
|
+
import asyncio
|
|
127
|
+
|
|
128
|
+
from chia.cmds.farm_funcs import solver_connect
|
|
129
|
+
|
|
130
|
+
asyncio.run(solver_connect(ChiaCliContext.set_default(ctx).root_path, farmer_rpc_port, solver_address))
|