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
|
@@ -14,6 +14,7 @@ from chia._tests.connection_utils import connect_and_get_peer
|
|
|
14
14
|
from chia._tests.util.setup_nodes import SimulatorsAndWalletsServices
|
|
15
15
|
from chia._tests.util.time_out_assert import time_out_assert
|
|
16
16
|
from chia.full_node.full_node_api import FullNodeAPI
|
|
17
|
+
from chia.full_node.start_full_node import create_full_node_service
|
|
17
18
|
from chia.protocols.full_node_protocol import RejectBlock, RequestBlock, RequestTransaction
|
|
18
19
|
from chia.protocols.outbound_message import NodeType, make_msg
|
|
19
20
|
from chia.protocols.protocol_message_types import ProtocolMessageTypes
|
|
@@ -21,12 +22,11 @@ from chia.protocols.shared_protocol import Error, protocol_version
|
|
|
21
22
|
from chia.protocols.wallet_protocol import RejectHeaderRequest
|
|
22
23
|
from chia.server.api_protocol import ApiMetadata
|
|
23
24
|
from chia.server.server import ChiaServer
|
|
24
|
-
from chia.server.start_full_node import create_full_node_service
|
|
25
|
-
from chia.server.start_wallet import create_wallet_service
|
|
26
25
|
from chia.server.ws_connection import WSChiaConnection, error_response_version
|
|
27
26
|
from chia.simulator.block_tools import BlockTools
|
|
28
27
|
from chia.types.peer_info import PeerInfo
|
|
29
28
|
from chia.util.errors import ApiError, Err
|
|
29
|
+
from chia.wallet.start_wallet import create_wallet_service
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
@dataclass
|
|
@@ -86,15 +86,15 @@ async def test_daemon_terminates(signal_number: signal.Signals, chia_root: ChiaR
|
|
|
86
86
|
@pytest.mark.parametrize(
|
|
87
87
|
argnames=["create_service", "module_path", "service_config_name"],
|
|
88
88
|
argvalues=[
|
|
89
|
-
[DataLayerRpcClient.create_as_context, "chia.
|
|
90
|
-
[FarmerRpcClient.create_as_context, "chia.
|
|
91
|
-
[FullNodeRpcClient.create_as_context, "chia.
|
|
92
|
-
[HarvesterRpcClient.create_as_context, "chia.
|
|
93
|
-
[WalletRpcClient.create_as_context, "chia.
|
|
94
|
-
[None, "chia.
|
|
89
|
+
[DataLayerRpcClient.create_as_context, "chia.data_layer.start_data_layer", "data_layer"],
|
|
90
|
+
[FarmerRpcClient.create_as_context, "chia.farmer.start_farmer", "farmer"],
|
|
91
|
+
[FullNodeRpcClient.create_as_context, "chia.full_node.start_full_node", "full_node"],
|
|
92
|
+
[HarvesterRpcClient.create_as_context, "chia.harvester.start_harvester", "harvester"],
|
|
93
|
+
[WalletRpcClient.create_as_context, "chia.wallet.start_wallet", "wallet"],
|
|
94
|
+
[None, "chia.introducer.start_introducer", "introducer"],
|
|
95
95
|
# TODO: fails... make it not do that
|
|
96
96
|
# [None, "chia.seeder.start_crawler", "crawler"],
|
|
97
|
-
[None, "chia.
|
|
97
|
+
[None, "chia.timelord.start_timelord", "timelord"],
|
|
98
98
|
pytest.param(
|
|
99
99
|
None,
|
|
100
100
|
"chia.timelord.timelord_launcher",
|
|
@@ -4,7 +4,8 @@ import logging
|
|
|
4
4
|
import pathlib
|
|
5
5
|
|
|
6
6
|
import pytest
|
|
7
|
-
from chia_rs import G1Element
|
|
7
|
+
from chia_rs import G1Element, get_flags_for_height_and_constants
|
|
8
|
+
from chia_rs import get_puzzle_and_solution_for_coin2 as get_puzzle_and_solution_for_coin
|
|
8
9
|
from chia_rs.sized_bytes import bytes32
|
|
9
10
|
from chia_rs.sized_ints import uint32, uint64
|
|
10
11
|
from clvm_tools import binutils
|
|
@@ -16,7 +17,6 @@ from chia.consensus.condition_costs import ConditionCost
|
|
|
16
17
|
from chia.consensus.cost_calculator import NPCResult
|
|
17
18
|
from chia.consensus.default_constants import DEFAULT_CONSTANTS
|
|
18
19
|
from chia.full_node.bundle_tools import simple_solution_generator
|
|
19
|
-
from chia.full_node.mempool_check_conditions import get_puzzle_and_solution_for_coin
|
|
20
20
|
from chia.simulator.block_tools import BlockTools, test_constants
|
|
21
21
|
from chia.types.blockchain_format.coin import Coin
|
|
22
22
|
from chia.types.blockchain_format.program import Program, run_with_cost
|
|
@@ -89,9 +89,15 @@ async def test_basics(softfork_height: int, bt: BlockTools) -> None:
|
|
|
89
89
|
coin_spend = spend_bundle.coin_spends[0]
|
|
90
90
|
assert npc_result.conds is not None
|
|
91
91
|
assert coin_spend.coin.name() == npc_result.conds.spends[0].coin_id
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
puzzle, solution = get_puzzle_and_solution_for_coin(
|
|
93
|
+
program.program,
|
|
94
|
+
program.generator_refs,
|
|
95
|
+
bt.constants.MAX_BLOCK_COST_CLVM,
|
|
96
|
+
coin_spend.coin,
|
|
97
|
+
get_flags_for_height_and_constants(softfork_height, bt.constants),
|
|
98
|
+
)
|
|
99
|
+
assert puzzle == coin_spend.puzzle_reveal
|
|
100
|
+
assert solution == coin_spend.solution
|
|
95
101
|
|
|
96
102
|
if softfork_height >= bt.constants.HARD_FORK_HEIGHT:
|
|
97
103
|
clvm_cost = 27360
|
|
@@ -170,8 +176,14 @@ async def test_mempool_mode(softfork_height: int, bt: BlockTools) -> None:
|
|
|
170
176
|
bytes32.fromhex("14947eb0e69ee8fc8279190fc2d38cb4bbb61ba28f1a270cfd643a0e8d759576"),
|
|
171
177
|
uint64(300),
|
|
172
178
|
)
|
|
173
|
-
|
|
174
|
-
|
|
179
|
+
puz, _solution = get_puzzle_and_solution_for_coin(
|
|
180
|
+
generator.program,
|
|
181
|
+
generator.generator_refs,
|
|
182
|
+
bt.constants.MAX_BLOCK_COST_CLVM,
|
|
183
|
+
coin,
|
|
184
|
+
get_flags_for_height_and_constants(0, bt.constants),
|
|
185
|
+
)
|
|
186
|
+
assert puz == puzzle.to_serialized()
|
|
175
187
|
|
|
176
188
|
|
|
177
189
|
@pytest.mark.anyio
|
|
@@ -282,8 +294,11 @@ async def test_standard_tx(benchmark_runner: BenchmarkRunner) -> None:
|
|
|
282
294
|
|
|
283
295
|
@pytest.mark.anyio
|
|
284
296
|
async def test_get_puzzle_and_solution_for_coin_performance(benchmark_runner: BenchmarkRunner) -> None:
|
|
297
|
+
from chia_puzzles_py.programs import CHIALISP_DESERIALISATION
|
|
298
|
+
|
|
285
299
|
from chia._tests.core.large_block import LARGE_BLOCK
|
|
286
|
-
|
|
300
|
+
|
|
301
|
+
DESERIALIZE_MOD = Program.from_bytes(CHIALISP_DESERIALISATION)
|
|
287
302
|
|
|
288
303
|
assert LARGE_BLOCK.transactions_generator is not None
|
|
289
304
|
# first, list all spent coins in the block
|
|
@@ -309,5 +324,11 @@ async def test_get_puzzle_and_solution_for_coin_performance(benchmark_runner: Be
|
|
|
309
324
|
with benchmark_runner.assert_runtime(seconds=8.5):
|
|
310
325
|
for _ in range(3):
|
|
311
326
|
for c in spent_coins:
|
|
312
|
-
|
|
313
|
-
|
|
327
|
+
puz, _solution = get_puzzle_and_solution_for_coin(
|
|
328
|
+
generator.program,
|
|
329
|
+
generator.generator_refs,
|
|
330
|
+
test_constants.MAX_BLOCK_COST_CLVM,
|
|
331
|
+
c,
|
|
332
|
+
get_flags_for_height_and_constants(0, test_constants),
|
|
333
|
+
)
|
|
334
|
+
assert puz.get_tree_hash() == c.puzzle_hash
|
chia/_tests/core/test_crawler.py
CHANGED
|
@@ -16,8 +16,8 @@ from chia.protocols.full_node_protocol import NewPeak
|
|
|
16
16
|
from chia.protocols.outbound_message import make_msg
|
|
17
17
|
from chia.protocols.protocol_message_types import ProtocolMessageTypes
|
|
18
18
|
from chia.protocols.wallet_protocol import RequestChildren
|
|
19
|
+
from chia.seeder.crawler_service import CrawlerService
|
|
19
20
|
from chia.seeder.peer_record import PeerRecord, PeerReliability
|
|
20
|
-
from chia.server.aliases import CrawlerService
|
|
21
21
|
from chia.types.peer_info import PeerInfo
|
|
22
22
|
|
|
23
23
|
|
|
@@ -111,7 +111,7 @@ async def test_crawler_to_db(crawler_service_no_loop: CrawlerService, one_node:
|
|
|
111
111
|
uint64(0),
|
|
112
112
|
uint32(0),
|
|
113
113
|
uint64(0),
|
|
114
|
-
uint64(
|
|
114
|
+
uint64(time.time()),
|
|
115
115
|
uint64(0),
|
|
116
116
|
"undefined",
|
|
117
117
|
uint64(0),
|
|
@@ -153,8 +153,8 @@ async def test_crawler_peer_cleanup(
|
|
|
153
153
|
uint64(0),
|
|
154
154
|
uint32(0),
|
|
155
155
|
uint64(0),
|
|
156
|
-
uint64(
|
|
157
|
-
uint64(
|
|
156
|
+
uint64(time.time()),
|
|
157
|
+
uint64((datetime.now() - timedelta(days=idx * 10)).timestamp()),
|
|
158
158
|
"undefined",
|
|
159
159
|
uint64(0),
|
|
160
160
|
tls_version="unknown",
|
|
@@ -10,9 +10,9 @@ from chia_rs.sized_ints import uint32, uint64
|
|
|
10
10
|
from chia._tests.util.temp_file import TempFile
|
|
11
11
|
from chia.cmds.db_upgrade_func import convert_v1_to_v2
|
|
12
12
|
from chia.consensus.block_body_validation import ForkInfo
|
|
13
|
+
from chia.consensus.block_height_map import BlockHeightMap
|
|
13
14
|
from chia.consensus.blockchain import Blockchain
|
|
14
15
|
from chia.consensus.multiprocess_validation import PreValidationResult
|
|
15
|
-
from chia.full_node.block_height_map import BlockHeightMap
|
|
16
16
|
from chia.full_node.block_store import BlockStore
|
|
17
17
|
from chia.full_node.coin_store import CoinStore
|
|
18
18
|
from chia.full_node.hint_store import HintStore
|
|
@@ -20,13 +20,6 @@ from chia.simulator.block_tools import test_constants
|
|
|
20
20
|
from chia.util.db_wrapper import DBWrapper2
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
def rand_bytes(num) -> bytes:
|
|
24
|
-
ret = bytearray(num)
|
|
25
|
-
for i in range(num):
|
|
26
|
-
ret[i] = random.getrandbits(8)
|
|
27
|
-
return bytes(ret)
|
|
28
|
-
|
|
29
|
-
|
|
30
23
|
@pytest.mark.anyio
|
|
31
24
|
@pytest.mark.parametrize("with_hints", [True, False])
|
|
32
25
|
@pytest.mark.skip("we no longer support DB v1")
|
|
@@ -35,21 +28,21 @@ async def test_blocks(default_1000_blocks, with_hints: bool):
|
|
|
35
28
|
|
|
36
29
|
hints: list[tuple[bytes32, bytes]] = []
|
|
37
30
|
for i in range(351):
|
|
38
|
-
hints.append((bytes32(
|
|
31
|
+
hints.append((bytes32.random(), random.randbytes(20)))
|
|
39
32
|
|
|
40
33
|
# the v1 schema allows duplicates in the hints table
|
|
41
34
|
for i in range(10):
|
|
42
|
-
coin_id = bytes32(
|
|
43
|
-
hint =
|
|
35
|
+
coin_id = bytes32.random()
|
|
36
|
+
hint = random.randbytes(20)
|
|
44
37
|
hints.append((coin_id, hint))
|
|
45
38
|
hints.append((coin_id, hint))
|
|
46
39
|
|
|
47
40
|
for i in range(2000):
|
|
48
|
-
hints.append((bytes32(
|
|
41
|
+
hints.append((bytes32.random(), random.randbytes(20)))
|
|
49
42
|
|
|
50
43
|
for i in range(5):
|
|
51
|
-
coin_id = bytes32(
|
|
52
|
-
hint =
|
|
44
|
+
coin_id = bytes32.random()
|
|
45
|
+
hint = random.randbytes(20)
|
|
53
46
|
hints.append((coin_id, hint))
|
|
54
47
|
hints.append((coin_id, hint))
|
|
55
48
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
import random
|
|
4
3
|
import sqlite3
|
|
5
4
|
from contextlib import closing
|
|
6
5
|
from pathlib import Path
|
|
@@ -14,10 +13,10 @@ from chia_rs.sized_ints import uint32, uint64
|
|
|
14
13
|
from chia._tests.util.temp_file import TempFile
|
|
15
14
|
from chia.cmds.db_validate_func import validate_v2
|
|
16
15
|
from chia.consensus.block_body_validation import ForkInfo
|
|
16
|
+
from chia.consensus.block_height_map import BlockHeightMap
|
|
17
17
|
from chia.consensus.blockchain import Blockchain
|
|
18
18
|
from chia.consensus.default_constants import DEFAULT_CONSTANTS
|
|
19
19
|
from chia.consensus.multiprocess_validation import PreValidationResult
|
|
20
|
-
from chia.full_node.block_height_map import BlockHeightMap
|
|
21
20
|
from chia.full_node.block_store import BlockStore
|
|
22
21
|
from chia.full_node.coin_store import CoinStore
|
|
23
22
|
from chia.simulator.block_tools import test_constants
|
|
@@ -25,10 +24,7 @@ from chia.util.db_wrapper import DBWrapper2
|
|
|
25
24
|
|
|
26
25
|
|
|
27
26
|
def rand_hash() -> bytes32:
|
|
28
|
-
|
|
29
|
-
for i in range(32):
|
|
30
|
-
ret[i] = random.getrandbits(8)
|
|
31
|
-
return bytes32(ret)
|
|
27
|
+
return bytes32.random()
|
|
32
28
|
|
|
33
29
|
|
|
34
30
|
def make_version(conn: sqlite3.Connection, version: int) -> None:
|
|
@@ -30,11 +30,15 @@ from chia.farmer.farmer_rpc_api import (
|
|
|
30
30
|
plot_matches_filter,
|
|
31
31
|
)
|
|
32
32
|
from chia.farmer.farmer_rpc_client import FarmerRpcClient
|
|
33
|
+
from chia.farmer.farmer_service import FarmerService
|
|
34
|
+
from chia.harvester.harvester_service import HarvesterService
|
|
33
35
|
from chia.plot_sync.receiver import Receiver, get_list_or_len
|
|
34
36
|
from chia.plotting.util import add_plot_directory
|
|
35
37
|
from chia.protocols import farmer_protocol
|
|
36
38
|
from chia.protocols.harvester_protocol import Plot
|
|
37
|
-
from chia.
|
|
39
|
+
from chia.rpc.rpc_client import ResponseFailureError
|
|
40
|
+
from chia.simulator.block_tools import BlockTools, get_plot_dir
|
|
41
|
+
from chia.solver.solver_service import SolverService
|
|
38
42
|
from chia.util.bech32m import decode_puzzle_hash, encode_puzzle_hash
|
|
39
43
|
from chia.util.config import load_config, lock_and_load_config, save_config
|
|
40
44
|
from chia.util.hash import std_hash
|
|
@@ -503,3 +507,32 @@ async def test_harvester_add_plot_directory(harvester_farmer_environment: Harves
|
|
|
503
507
|
added_directories = await harvester_rpc_client.get_plot_directories()
|
|
504
508
|
assert str(test_path) in added_directories
|
|
505
509
|
assert str(test_path_other) in added_directories
|
|
510
|
+
|
|
511
|
+
|
|
512
|
+
@pytest.mark.anyio
|
|
513
|
+
async def test_farmer_connect_to_solver(
|
|
514
|
+
farmer_one_harvester_solver: tuple[list[HarvesterService], FarmerService, SolverService, BlockTools],
|
|
515
|
+
) -> None:
|
|
516
|
+
_, farmer_service, solver_service, bt = farmer_one_harvester_solver
|
|
517
|
+
assert farmer_service.rpc_server is not None
|
|
518
|
+
farmer_rpc_client = await FarmerRpcClient.create(
|
|
519
|
+
bt.config["self_hostname"],
|
|
520
|
+
farmer_service.rpc_server.listen_port,
|
|
521
|
+
farmer_service.root_path,
|
|
522
|
+
farmer_service.config,
|
|
523
|
+
)
|
|
524
|
+
|
|
525
|
+
try:
|
|
526
|
+
# Test successful connection to existing solver
|
|
527
|
+
solver_host = bt.config["self_hostname"]
|
|
528
|
+
solver_port = solver_service._server.get_port()
|
|
529
|
+
result = await farmer_rpc_client.connect_to_solver(solver_host, solver_port)
|
|
530
|
+
assert result["success"] is True
|
|
531
|
+
|
|
532
|
+
# Test connection failure to non-existent solver
|
|
533
|
+
with pytest.raises(ResponseFailureError) as exc_info:
|
|
534
|
+
await farmer_rpc_client.connect_to_solver("localhost", 65000)
|
|
535
|
+
assert "Could not connect to solver" in exc_info.value.response["error"]
|
|
536
|
+
finally:
|
|
537
|
+
farmer_rpc_client.close()
|
|
538
|
+
await farmer_rpc_client.await_closed()
|
|
@@ -88,8 +88,8 @@ async def test1(
|
|
|
88
88
|
|
|
89
89
|
peak_block = await client.get_block(state["peak"].header_hash)
|
|
90
90
|
assert peak_block == blocks[-1]
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
with pytest.raises(ValueError, match="not found"):
|
|
92
|
+
await client.get_block(bytes32([1] * 32))
|
|
93
93
|
block_record = await client.get_block_record_by_height(2)
|
|
94
94
|
assert block_record is not None
|
|
95
95
|
assert block_record.header_hash == blocks[2].header_hash
|
|
@@ -150,8 +150,10 @@ async def test1(
|
|
|
150
150
|
|
|
151
151
|
assert len(await client.get_all_mempool_items()) == 0
|
|
152
152
|
assert len(await client.get_all_mempool_tx_ids()) == 0
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
with pytest.raises(ValueError, match="not in the mempool"):
|
|
154
|
+
await client.get_mempool_item_by_tx_id(spend_bundle.name())
|
|
155
|
+
with pytest.raises(ValueError, match="not in the mempool"):
|
|
156
|
+
await client.get_mempool_item_by_tx_id(spend_bundle.name(), False)
|
|
155
157
|
|
|
156
158
|
await client.push_tx(spend_bundle)
|
|
157
159
|
coin = spend_bundle.additions()[0]
|
|
@@ -168,7 +170,8 @@ async def test1(
|
|
|
168
170
|
mempool_item = await client.get_mempool_item_by_tx_id(spend_bundle.name())
|
|
169
171
|
assert mempool_item is not None
|
|
170
172
|
assert WalletSpendBundle.from_json_dict(mempool_item["spend_bundle"]) == spend_bundle
|
|
171
|
-
|
|
173
|
+
with pytest.raises(ValueError, match="not found"):
|
|
174
|
+
await client.get_coin_record_by_name(coin.name())
|
|
172
175
|
|
|
173
176
|
# Verify that the include_pending arg to get_mempool_item_by_tx_id works
|
|
174
177
|
coin_to_spend_pending = included_reward_coins[1]
|
|
@@ -181,11 +184,11 @@ async def test1(
|
|
|
181
184
|
condition_dic=condition_dic,
|
|
182
185
|
)
|
|
183
186
|
await client.push_tx(spend_bundle_pending)
|
|
184
|
-
|
|
185
|
-
|
|
187
|
+
with pytest.raises(ValueError, match="not in the mempool"):
|
|
188
|
+
# not strictly in the mempool
|
|
189
|
+
await client.get_mempool_item_by_tx_id(spend_bundle_pending.name(), False)
|
|
186
190
|
# pending entry into mempool, so include_pending fetches
|
|
187
191
|
mempool_item = await client.get_mempool_item_by_tx_id(spend_bundle_pending.name(), True)
|
|
188
|
-
assert mempool_item is not None
|
|
189
192
|
assert WalletSpendBundle.from_json_dict(mempool_item["spend_bundle"]) == spend_bundle_pending
|
|
190
193
|
|
|
191
194
|
await full_node_api_1.farm_new_transaction_block(FarmNewBlockProtocol(ph_2))
|
|
@@ -254,7 +257,8 @@ async def test1(
|
|
|
254
257
|
assert coin_spend_with_conditions.coin_spend.solution == SerializedProgram.fromhex(
|
|
255
258
|
"ff80ffff01ffff33ffa063c767818f8b7cc8f3760ce34a09b7f34cd9ddf09d345c679b6897e7620c575cff8601977420dc0080ffff3cffa0a2366d6d8e1ce7496175528f5618a13da8401b02f2bac1eaae8f28aea9ee54798080ff8080"
|
|
256
259
|
)
|
|
257
|
-
|
|
260
|
+
|
|
261
|
+
expected = [
|
|
258
262
|
ConditionWithArgs(
|
|
259
263
|
ConditionOpcode(b"2"),
|
|
260
264
|
[
|
|
@@ -279,6 +283,8 @@ async def test1(
|
|
|
279
283
|
),
|
|
280
284
|
]
|
|
281
285
|
|
|
286
|
+
assert coin_spend_with_conditions.conditions == expected
|
|
287
|
+
|
|
282
288
|
coin_spend_with_conditions = block_spends_with_conditions[2]
|
|
283
289
|
|
|
284
290
|
assert coin_spend_with_conditions.coin_spend.coin == Coin(
|
|
@@ -451,17 +457,15 @@ async def test_signage_points(
|
|
|
451
457
|
full_node_service_1.config,
|
|
452
458
|
) as client:
|
|
453
459
|
# Only provide one
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
460
|
+
with pytest.raises(ValueError, match="sp_hash or challenge_hash must be provided"):
|
|
461
|
+
await client.get_recent_signage_point_or_eos(None, None)
|
|
462
|
+
with pytest.raises(ValueError, match="Either sp_hash or challenge_hash must be provided, not both"):
|
|
463
|
+
await client.get_recent_signage_point_or_eos(std_hash(b"0"), std_hash(b"1"))
|
|
459
464
|
# Not found
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
+
with pytest.raises(ValueError, match="in cache"):
|
|
466
|
+
await client.get_recent_signage_point_or_eos(std_hash(b"0"), None)
|
|
467
|
+
with pytest.raises(ValueError, match="in cache"):
|
|
468
|
+
await client.get_recent_signage_point_or_eos(None, std_hash(b"0"))
|
|
465
469
|
blocks = bt.get_consecutive_blocks(5)
|
|
466
470
|
for block in blocks:
|
|
467
471
|
await full_node_api_1.full_node.add_block(block)
|
|
@@ -491,8 +495,8 @@ async def test_signage_points(
|
|
|
491
495
|
assert sp.rc_proof is not None
|
|
492
496
|
assert sp.rc_vdf is not None
|
|
493
497
|
# Don't have SP yet
|
|
494
|
-
|
|
495
|
-
|
|
498
|
+
with pytest.raises(ValueError, match="Did not find sp"):
|
|
499
|
+
await client.get_recent_signage_point_or_eos(sp.cc_vdf.output.get_hash(), None)
|
|
496
500
|
|
|
497
501
|
# Add the last block
|
|
498
502
|
await full_node_api_1.full_node.add_block(blocks[-1])
|
|
@@ -514,9 +518,8 @@ async def test_signage_points(
|
|
|
514
518
|
selected_eos = blocks[-1].finished_sub_slots[0]
|
|
515
519
|
|
|
516
520
|
# Don't have EOS yet
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
521
|
+
with pytest.raises(ValueError, match="Did not find eos"):
|
|
522
|
+
await client.get_recent_signage_point_or_eos(None, selected_eos.challenge_chain.get_hash())
|
|
520
523
|
# Properly fetch an EOS
|
|
521
524
|
for eos in blocks[-1].finished_sub_slots:
|
|
522
525
|
await full_node_api_1.full_node.add_end_of_sub_slot(eos, peer)
|
|
@@ -545,6 +548,7 @@ async def test_signage_points(
|
|
|
545
548
|
|
|
546
549
|
# Signage point is no longer in the blockchain
|
|
547
550
|
res = await client.get_recent_signage_point_or_eos(sp.cc_vdf.output.get_hash(), None)
|
|
551
|
+
assert res is not None
|
|
548
552
|
assert res["reverted"]
|
|
549
553
|
assert res["signage_point"] == sp
|
|
550
554
|
assert "eos" not in res
|
|
@@ -279,10 +279,7 @@ async def test_merkle_right_edge() -> None:
|
|
|
279
279
|
|
|
280
280
|
|
|
281
281
|
def rand_hash(rng: random.Random) -> bytes32:
|
|
282
|
-
|
|
283
|
-
for i in range(32):
|
|
284
|
-
ret[i] = rng.getrandbits(8)
|
|
285
|
-
return bytes32(ret)
|
|
282
|
+
return bytes32.random(r=rng)
|
|
286
283
|
|
|
287
284
|
|
|
288
285
|
@pytest.mark.anyio
|
chia/_tests/core/test_seeder.py
CHANGED
|
@@ -220,9 +220,9 @@ class TestKeychain:
|
|
|
220
220
|
test_vectors_path = importlib_resources.files(chia._tests.util.__name__).joinpath("bip39_test_vectors.json")
|
|
221
221
|
all_vectors = json.loads(test_vectors_path.read_text(encoding="utf-8"))
|
|
222
222
|
|
|
223
|
-
for idx, [entropy_hex, full_mnemonic,
|
|
223
|
+
for idx, [entropy_hex, full_mnemonic, seed_hex, short_mnemonic] in enumerate(all_vectors["english"]):
|
|
224
224
|
entropy_bytes = bytes.fromhex(entropy_hex)
|
|
225
|
-
seed = bytes.fromhex(
|
|
225
|
+
seed = bytes.fromhex(seed_hex)
|
|
226
226
|
|
|
227
227
|
assert mnemonic_from_short_words(short_mnemonic) == full_mnemonic
|
|
228
228
|
assert bytes_from_mnemonic(short_mnemonic) == entropy_bytes
|
|
@@ -2,6 +2,8 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import unittest
|
|
4
4
|
|
|
5
|
+
import pytest
|
|
6
|
+
|
|
5
7
|
from chia.util.lru_cache import LRUCache
|
|
6
8
|
|
|
7
9
|
|
|
@@ -54,3 +56,17 @@ class TestLRUCache(unittest.TestCase):
|
|
|
54
56
|
assert len(cache.cache) == 5
|
|
55
57
|
assert cache.get(b"0") is None
|
|
56
58
|
assert cache.get(b"1") == 1
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
@pytest.mark.parametrize(argnames="capacity", argvalues=[-10, -1, 0])
|
|
62
|
+
def test_with_zero_capacity(capacity: int) -> None:
|
|
63
|
+
cache: LRUCache[bytes, int] = LRUCache(capacity=capacity)
|
|
64
|
+
cache.put(b"0", 1)
|
|
65
|
+
assert cache.get(b"0") is None
|
|
66
|
+
assert len(cache.cache) == 0
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
@pytest.mark.parametrize(argnames="capacity", argvalues=[-10, -1, 0, 1, 5, 10])
|
|
70
|
+
def test_get_capacity(capacity: int) -> None:
|
|
71
|
+
cache: LRUCache[object, object] = LRUCache(capacity=capacity)
|
|
72
|
+
assert cache.get_capacity() == capacity
|
|
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import io
|
|
4
4
|
import re
|
|
5
5
|
from dataclasses import dataclass, field, fields
|
|
6
|
+
from enum import Enum
|
|
6
7
|
from typing import Any, Callable, ClassVar, Optional, get_type_hints
|
|
7
8
|
|
|
8
9
|
import pytest
|
|
@@ -27,6 +28,7 @@ from chia.util.streamable import (
|
|
|
27
28
|
function_to_parse_one_item,
|
|
28
29
|
function_to_stream_one_item,
|
|
29
30
|
is_type_Dict,
|
|
31
|
+
is_type_Enum,
|
|
30
32
|
is_type_List,
|
|
31
33
|
is_type_SpecificOptional,
|
|
32
34
|
is_type_Tuple,
|
|
@@ -39,6 +41,7 @@ from chia.util.streamable import (
|
|
|
39
41
|
parse_uint32,
|
|
40
42
|
recurse_jsonify,
|
|
41
43
|
streamable,
|
|
44
|
+
streamable_enum,
|
|
42
45
|
streamable_from_dict,
|
|
43
46
|
write_uint32,
|
|
44
47
|
)
|
|
@@ -372,10 +375,29 @@ def test_not_lists() -> None:
|
|
|
372
375
|
|
|
373
376
|
def test_basic_optional() -> None:
|
|
374
377
|
assert is_type_SpecificOptional(Optional[int])
|
|
375
|
-
assert is_type_SpecificOptional(Optional[
|
|
378
|
+
assert is_type_SpecificOptional(Optional[int])
|
|
376
379
|
assert not is_type_SpecificOptional(list[int])
|
|
377
380
|
|
|
378
381
|
|
|
382
|
+
class BasicEnum(Enum):
|
|
383
|
+
A = 1
|
|
384
|
+
B = 2
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
def test_basic_enum() -> None:
|
|
388
|
+
assert is_type_Enum(BasicEnum)
|
|
389
|
+
assert not is_type_Enum(list[int])
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
def test_enum_needs_proxy() -> None:
|
|
393
|
+
with pytest.raises(UnsupportedType):
|
|
394
|
+
|
|
395
|
+
@streamable
|
|
396
|
+
@dataclass(frozen=True)
|
|
397
|
+
class EnumStreamable(Streamable):
|
|
398
|
+
enum: BasicEnum
|
|
399
|
+
|
|
400
|
+
|
|
379
401
|
@streamable
|
|
380
402
|
@dataclass(frozen=True)
|
|
381
403
|
class PostInitTestClassBasic(Streamable):
|
|
@@ -398,8 +420,8 @@ class PostInitTestClassBad(Streamable):
|
|
|
398
420
|
class PostInitTestClassOptional(Streamable):
|
|
399
421
|
a: Optional[uint8]
|
|
400
422
|
b: Optional[uint8]
|
|
401
|
-
c: Optional[
|
|
402
|
-
d: Optional[
|
|
423
|
+
c: Optional[uint8]
|
|
424
|
+
d: Optional[uint8]
|
|
403
425
|
|
|
404
426
|
|
|
405
427
|
@streamable
|
|
@@ -423,6 +445,25 @@ class PostInitTestClassDict(Streamable):
|
|
|
423
445
|
b: dict[bytes32, dict[uint8, str]]
|
|
424
446
|
|
|
425
447
|
|
|
448
|
+
@streamable_enum(uint32)
|
|
449
|
+
class IntegerEnum(Enum):
|
|
450
|
+
A = 1
|
|
451
|
+
B = 2
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
@streamable_enum(str)
|
|
455
|
+
class StringEnum(Enum):
|
|
456
|
+
A = "foo"
|
|
457
|
+
B = "bar"
|
|
458
|
+
|
|
459
|
+
|
|
460
|
+
@streamable
|
|
461
|
+
@dataclass(frozen=True)
|
|
462
|
+
class PostInitTestClassEnum(Streamable):
|
|
463
|
+
a: IntegerEnum
|
|
464
|
+
b: StringEnum
|
|
465
|
+
|
|
466
|
+
|
|
426
467
|
@pytest.mark.parametrize(
|
|
427
468
|
"test_class, args",
|
|
428
469
|
[
|
|
@@ -433,6 +474,7 @@ class PostInitTestClassDict(Streamable):
|
|
|
433
474
|
(PostInitTestClassTuple, ((1, "test"), ((200, "test_2"), b"\xba" * 32))),
|
|
434
475
|
(PostInitTestClassDict, ({1: "bar"}, {bytes32.zeros: {1: "bar"}})),
|
|
435
476
|
(PostInitTestClassOptional, (12, None, 13, None)),
|
|
477
|
+
(PostInitTestClassEnum, (IntegerEnum.A, StringEnum.B)),
|
|
436
478
|
],
|
|
437
479
|
)
|
|
438
480
|
def test_post_init_valid(test_class: type[Any], args: tuple[Any, ...]) -> None:
|
|
@@ -453,6 +495,8 @@ def test_post_init_valid(test_class: type[Any], args: tuple[Any, ...]) -> None:
|
|
|
453
495
|
return validate_item_type(key_type, next(iter(item.keys()))) and validate_item_type(
|
|
454
496
|
value_type, next(iter(item.values()))
|
|
455
497
|
)
|
|
498
|
+
if is_type_Enum(type_in):
|
|
499
|
+
return validate_item_type(type_in._streamable_proxy, type_in._streamable_proxy(item.value)) # type: ignore[attr-defined]
|
|
456
500
|
return isinstance(item, type_in)
|
|
457
501
|
|
|
458
502
|
test_object = test_class(*args)
|
|
@@ -497,6 +541,8 @@ def test_basic() -> None:
|
|
|
497
541
|
f: Optional[uint32]
|
|
498
542
|
g: tuple[uint32, str, bytes]
|
|
499
543
|
h: dict[uint32, str]
|
|
544
|
+
i: IntegerEnum
|
|
545
|
+
j: StringEnum
|
|
500
546
|
|
|
501
547
|
# we want to test invalid here, hence the ignore.
|
|
502
548
|
a = TestClass(
|
|
@@ -508,6 +554,8 @@ def test_basic() -> None:
|
|
|
508
554
|
None,
|
|
509
555
|
(uint32(383), "hello", b"goodbye"),
|
|
510
556
|
{uint32(1): "foo"},
|
|
557
|
+
IntegerEnum.A,
|
|
558
|
+
StringEnum.B,
|
|
511
559
|
)
|
|
512
560
|
|
|
513
561
|
b: bytes = bytes(a)
|
|
@@ -619,10 +667,21 @@ def test_ambiguous_deserialization_int() -> None:
|
|
|
619
667
|
a: uint32
|
|
620
668
|
|
|
621
669
|
# Does not have the required uint size
|
|
622
|
-
with pytest.raises(ValueError):
|
|
670
|
+
with pytest.raises(ValueError, match=re.escape("uint32.from_bytes() requires 4 bytes but got: 2")):
|
|
623
671
|
TestClassUint.from_bytes(b"\x00\x00")
|
|
624
672
|
|
|
625
673
|
|
|
674
|
+
def test_ambiguous_deserialization_int_enum() -> None:
|
|
675
|
+
@streamable
|
|
676
|
+
@dataclass(frozen=True)
|
|
677
|
+
class TestClassIntegerEnum(Streamable):
|
|
678
|
+
a: IntegerEnum
|
|
679
|
+
|
|
680
|
+
# passed bytes are incorrect size for serialization proxy
|
|
681
|
+
with pytest.raises(ValueError, match=re.escape("uint32.from_bytes() requires 4 bytes but got: 2")):
|
|
682
|
+
TestClassIntegerEnum.from_bytes(b"\x00\x00")
|
|
683
|
+
|
|
684
|
+
|
|
626
685
|
def test_ambiguous_deserialization_list() -> None:
|
|
627
686
|
@streamable
|
|
628
687
|
@dataclass(frozen=True)
|
|
@@ -656,6 +715,28 @@ def test_ambiguous_deserialization_str() -> None:
|
|
|
656
715
|
TestClassStr.from_bytes(bytes([0, 0, 100, 24, 52]))
|
|
657
716
|
|
|
658
717
|
|
|
718
|
+
def test_ambiguous_deserialization_str_enum() -> None:
|
|
719
|
+
@streamable
|
|
720
|
+
@dataclass(frozen=True)
|
|
721
|
+
class TestClassStr(Streamable):
|
|
722
|
+
a: StringEnum
|
|
723
|
+
|
|
724
|
+
# passed bytes are incorrect size for serialization proxy
|
|
725
|
+
with pytest.raises(AssertionError):
|
|
726
|
+
TestClassStr.from_bytes(bytes([0, 0, 100, 24, 52]))
|
|
727
|
+
|
|
728
|
+
|
|
729
|
+
def test_deserialization_to_invalid_enum() -> None:
|
|
730
|
+
@streamable
|
|
731
|
+
@dataclass(frozen=True)
|
|
732
|
+
class TestClassStr(Streamable):
|
|
733
|
+
a: StringEnum
|
|
734
|
+
|
|
735
|
+
# encodes the string "baz" which is not a valid value for StringEnum
|
|
736
|
+
with pytest.raises(ValueError, match=re.escape("'baz' is not a valid StringEnum")):
|
|
737
|
+
TestClassStr.from_bytes(bytes([0, 0, 0, 3, 98, 97, 122]))
|
|
738
|
+
|
|
739
|
+
|
|
659
740
|
def test_ambiguous_deserialization_bytes() -> None:
|
|
660
741
|
@streamable
|
|
661
742
|
@dataclass(frozen=True)
|