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
|
@@ -11,10 +11,12 @@ from typing import Callable, Optional, TypeVar
|
|
|
11
11
|
from chia_rs import (
|
|
12
12
|
ELIGIBLE_FOR_DEDUP,
|
|
13
13
|
ELIGIBLE_FOR_FF,
|
|
14
|
+
MEMPOOL_MODE,
|
|
14
15
|
BLSCache,
|
|
15
16
|
ConsensusConstants,
|
|
16
17
|
SpendBundle,
|
|
17
18
|
SpendBundleConditions,
|
|
19
|
+
get_flags_for_height_and_constants,
|
|
18
20
|
supports_fast_forward,
|
|
19
21
|
validate_clvm_and_signature,
|
|
20
22
|
)
|
|
@@ -24,9 +26,7 @@ from chiabip158 import PyBIP158
|
|
|
24
26
|
|
|
25
27
|
from chia.consensus.block_record import BlockRecordProtocol
|
|
26
28
|
from chia.consensus.check_time_locks import check_time_locks
|
|
27
|
-
from chia.consensus.cost_calculator import NPCResult
|
|
28
29
|
from chia.full_node.bitcoin_fee_estimator import create_bitcoin_fee_estimator
|
|
29
|
-
from chia.full_node.eligible_coin_spends import EligibilityAndAdditions
|
|
30
30
|
from chia.full_node.fee_estimation import FeeBlockInfo, MempoolInfo, MempoolItemInfo
|
|
31
31
|
from chia.full_node.fee_estimator_interface import FeeEstimatorInterface
|
|
32
32
|
from chia.full_node.mempool import MEMPOOL_ITEM_FEE_LIMIT, Mempool, MempoolRemoveInfo, MempoolRemoveReason
|
|
@@ -133,17 +133,10 @@ class SpendBundleAddInfo:
|
|
|
133
133
|
|
|
134
134
|
@dataclass
|
|
135
135
|
class NewPeakInfo:
|
|
136
|
-
|
|
136
|
+
spend_bundle_ids: list[bytes32]
|
|
137
137
|
removals: list[MempoolRemoveInfo]
|
|
138
138
|
|
|
139
139
|
|
|
140
|
-
@dataclass
|
|
141
|
-
class NewPeakItem:
|
|
142
|
-
transaction_id: bytes32
|
|
143
|
-
spend_bundle: SpendBundle
|
|
144
|
-
conds: SpendBundleConditions
|
|
145
|
-
|
|
146
|
-
|
|
147
140
|
# For block overhead cost calculation
|
|
148
141
|
QUOTE_BYTES = 2
|
|
149
142
|
QUOTE_EXECUTION_COST = 20
|
|
@@ -250,7 +243,7 @@ def check_removals(
|
|
|
250
243
|
conflicts = set()
|
|
251
244
|
for coin_id, coin_bcs in bundle_coin_spends.items():
|
|
252
245
|
# 1. Checks if it's been spent already
|
|
253
|
-
if removals[coin_id].spent and not coin_bcs.
|
|
246
|
+
if removals[coin_id].spent and not coin_bcs.supports_fast_forward:
|
|
254
247
|
return Err.DOUBLE_SPEND, []
|
|
255
248
|
|
|
256
249
|
# 2. Checks if there's a mempool conflict
|
|
@@ -276,12 +269,12 @@ def check_removals(
|
|
|
276
269
|
return Err.INVALID_SPEND_BUNDLE, []
|
|
277
270
|
# if the spend we're adding to the mempool is not DEDUP nor FF, it's
|
|
278
271
|
# just a regular conflict
|
|
279
|
-
if not coin_bcs.
|
|
272
|
+
if not coin_bcs.supports_fast_forward and not coin_bcs.eligible_for_dedup:
|
|
280
273
|
conflicts.add(item)
|
|
281
274
|
|
|
282
275
|
# if the spend we're adding is FF, but there's a conflicting spend
|
|
283
276
|
# that isn't FF, they can't be chained, so that's a conflict
|
|
284
|
-
elif coin_bcs.
|
|
277
|
+
elif coin_bcs.supports_fast_forward and not conflict_bcs.supports_fast_forward:
|
|
285
278
|
conflicts.add(item)
|
|
286
279
|
|
|
287
280
|
# if the spend we're adding is DEDUP, but there's a conflicting spend
|
|
@@ -456,19 +449,20 @@ class MempoolManager:
|
|
|
456
449
|
|
|
457
450
|
self._worker_queue_size += 1
|
|
458
451
|
try:
|
|
452
|
+
flags = get_flags_for_height_and_constants(self.peak.height, self.constants)
|
|
459
453
|
sbc, new_cache_entries, duration = await asyncio.get_running_loop().run_in_executor(
|
|
460
454
|
self.pool,
|
|
461
455
|
validate_clvm_and_signature,
|
|
462
456
|
spend_bundle,
|
|
463
457
|
self.max_tx_clvm_cost,
|
|
464
458
|
self.constants,
|
|
465
|
-
|
|
459
|
+
flags | MEMPOOL_MODE,
|
|
466
460
|
)
|
|
467
|
-
# validate_clvm_and_signature raises a
|
|
468
|
-
except
|
|
461
|
+
# validate_clvm_and_signature raises a ValueError with an error code
|
|
462
|
+
except ValueError as e:
|
|
469
463
|
# Convert that to a ValidationError
|
|
470
|
-
if len(e.args) >
|
|
471
|
-
error = Err(e.args[
|
|
464
|
+
if len(e.args) > 1:
|
|
465
|
+
error = Err(e.args[1])
|
|
472
466
|
raise ValidationError(error)
|
|
473
467
|
else:
|
|
474
468
|
raise ValidationError(Err.UNKNOWN) # pragma: no cover
|
|
@@ -478,8 +472,6 @@ class MempoolManager:
|
|
|
478
472
|
if bls_cache is not None:
|
|
479
473
|
bls_cache.update(new_cache_entries)
|
|
480
474
|
|
|
481
|
-
ret = NPCResult(None, sbc)
|
|
482
|
-
|
|
483
475
|
if spend_bundle_id is None:
|
|
484
476
|
spend_bundle_id = spend_bundle.name()
|
|
485
477
|
|
|
@@ -488,10 +480,7 @@ class MempoolManager:
|
|
|
488
480
|
f"pre_validate_spendbundle took {duration:0.4f} seconds "
|
|
489
481
|
f"for {spend_bundle_id} (queue-size: {self._worker_queue_size})",
|
|
490
482
|
)
|
|
491
|
-
|
|
492
|
-
raise ValidationError(Err(ret.error), "pre_validate_spendbundle failed")
|
|
493
|
-
assert ret.conds is not None
|
|
494
|
-
return ret.conds
|
|
483
|
+
return sbc
|
|
495
484
|
|
|
496
485
|
async def add_spend_bundle(
|
|
497
486
|
self,
|
|
@@ -505,14 +494,16 @@ class MempoolManager:
|
|
|
505
494
|
] = None,
|
|
506
495
|
) -> SpendBundleAddInfo:
|
|
507
496
|
"""
|
|
508
|
-
Validates and adds to mempool a new_spend with the given
|
|
509
|
-
|
|
510
|
-
|
|
497
|
+
Validates and adds to mempool a new_spend with the given
|
|
498
|
+
SpendBundleConditions, and spend_name, and the current mempool. The mempool
|
|
499
|
+
should be locked during this call (blockchain lock). If there are mempool
|
|
500
|
+
conflicts, the conflicting spends might be removed (if the new spend is
|
|
501
|
+
a superset of the previous). Otherwise, the new spend might be
|
|
511
502
|
added to the potential pool.
|
|
512
503
|
|
|
513
504
|
Args:
|
|
514
505
|
new_spend: spend bundle to validate and add
|
|
515
|
-
conds:
|
|
506
|
+
conds: SpendBundleConditions resulting from running the clvm in the spend bundle's coin spends
|
|
516
507
|
spend_name: hash of the spend bundle data, passed in as an optimization
|
|
517
508
|
|
|
518
509
|
Returns:
|
|
@@ -599,64 +590,57 @@ class MempoolManager:
|
|
|
599
590
|
removal_names: set[bytes32] = set()
|
|
600
591
|
additions_dict: dict[bytes32, Coin] = {}
|
|
601
592
|
addition_amount: int = 0
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
for spend in conds.spends
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
spend_additions.append(child_coin)
|
|
611
|
-
additions_dict[child_coin.name()] = child_coin
|
|
612
|
-
addition_amount += child_coin.amount
|
|
613
|
-
is_eligible_for_dedup = bool(spend.flags & ELIGIBLE_FOR_DEDUP)
|
|
614
|
-
is_eligible_for_ff = bool(spend.flags & ELIGIBLE_FOR_FF)
|
|
615
|
-
eligibility_and_additions[coin_id] = EligibilityAndAdditions(
|
|
616
|
-
is_eligible_for_dedup=is_eligible_for_dedup,
|
|
617
|
-
spend_additions=spend_additions,
|
|
618
|
-
ff_puzzle_hash=bytes32(spend.puzzle_hash) if is_eligible_for_ff else None,
|
|
619
|
-
)
|
|
620
|
-
removal_names_from_coin_spends: set[bytes32] = set()
|
|
593
|
+
|
|
594
|
+
# Map of coin ID to SpendConditions
|
|
595
|
+
spend_conditions = {bytes32(spend.coin_id): spend for spend in conds.spends}
|
|
596
|
+
|
|
597
|
+
# if this happens, the SpendBundle doesn't match the
|
|
598
|
+
# SpendBundleConditions.
|
|
599
|
+
assert len(new_spend.coin_spends) == len(spend_conditions)
|
|
600
|
+
|
|
621
601
|
bundle_coin_spends: dict[bytes32, BundleCoinSpend] = {}
|
|
622
602
|
for coin_spend in new_spend.coin_spends:
|
|
623
603
|
coin_id = coin_spend.coin.name()
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
)
|
|
604
|
+
removal_names.add(coin_id)
|
|
605
|
+
|
|
606
|
+
# if this coin_id isn't found, the SpendBundle doesn't match the
|
|
607
|
+
# SpendBundleConditions.
|
|
608
|
+
spend_conds = spend_conditions.pop(coin_id)
|
|
629
609
|
|
|
630
|
-
|
|
631
|
-
if supports_dedup and not is_clvm_canonical(bytes(coin_spend.solution)):
|
|
610
|
+
if bool(spend_conds.flags & ELIGIBLE_FOR_DEDUP) and not is_clvm_canonical(bytes(coin_spend.solution)):
|
|
632
611
|
return Err.INVALID_COIN_SOLUTION, None, []
|
|
633
612
|
|
|
634
|
-
mark_as_fast_forward = eligibility_info.ff_puzzle_hash is not None and supports_fast_forward(coin_spend)
|
|
635
613
|
lineage_info = None
|
|
636
|
-
if
|
|
614
|
+
if bool(spend_conds.flags & ELIGIBLE_FOR_FF) and supports_fast_forward(coin_spend):
|
|
637
615
|
# Make sure the fast forward spend still has a version that is
|
|
638
|
-
# still unspent, because if the singleton has been
|
|
639
|
-
# fast forward spend will never become valid.
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
616
|
+
# still unspent, because if the singleton has been spent in a
|
|
617
|
+
# non-FF spend, this fast forward spend will never become valid.
|
|
618
|
+
# So treat this as a normal spend, which requires the exact coin
|
|
619
|
+
# to exist and be unspent.
|
|
620
|
+
# Singletons that were created before the optimization of using
|
|
621
|
+
# spent_index will also fail this test, and such spends will
|
|
622
|
+
# fall back to be treated as non-FF spends.
|
|
623
|
+
lineage_info = await get_unspent_lineage_info_for_puzzle_hash(spend_conds.puzzle_hash)
|
|
624
|
+
|
|
625
|
+
spend_additions = []
|
|
626
|
+
for puzzle_hash, amount, _ in spend_conds.create_coin:
|
|
627
|
+
child_coin = Coin(coin_id, puzzle_hash, uint64(amount))
|
|
628
|
+
spend_additions.append(child_coin)
|
|
629
|
+
additions_dict[child_coin.name()] = child_coin
|
|
630
|
+
addition_amount += amount
|
|
631
|
+
|
|
644
632
|
bundle_coin_spends[coin_id] = BundleCoinSpend(
|
|
645
633
|
coin_spend=coin_spend,
|
|
646
|
-
eligible_for_dedup=
|
|
647
|
-
|
|
648
|
-
|
|
634
|
+
eligible_for_dedup=bool(spend_conds.flags & ELIGIBLE_FOR_DEDUP),
|
|
635
|
+
additions=spend_additions,
|
|
636
|
+
cost=uint64(spend_conds.condition_cost + spend_conds.execution_cost),
|
|
649
637
|
latest_singleton_lineage=lineage_info,
|
|
650
638
|
)
|
|
651
639
|
|
|
652
|
-
if removal_names != removal_names_from_coin_spends:
|
|
653
|
-
# If you reach here it's probably because your program reveal doesn't match the coin's puzzle hash
|
|
654
|
-
return Err.INVALID_SPEND_BUNDLE, None, []
|
|
655
|
-
|
|
656
640
|
# fast forward spends are only allowed when bundled with other, non-FF, spends
|
|
657
641
|
# in order to evict an FF spend, it must be associated with a normal
|
|
658
642
|
# spend that can be included in a block or invalidated some other way
|
|
659
|
-
if all([s.
|
|
643
|
+
if all([s.supports_fast_forward for s in bundle_coin_spends.values()]):
|
|
660
644
|
return Err.INVALID_SPEND_BUNDLE, None, []
|
|
661
645
|
|
|
662
646
|
removal_record_dict: dict[bytes32, CoinRecord] = {}
|
|
@@ -757,7 +741,7 @@ class MempoolManager:
|
|
|
757
741
|
return Err.IMPOSSIBLE_SECONDS_ABSOLUTE_CONSTRAINTS, None, [] # MempoolInclusionStatus.FAILED
|
|
758
742
|
|
|
759
743
|
potential = MempoolItem(
|
|
760
|
-
new_spend,
|
|
744
|
+
new_spend.aggregated_signature,
|
|
761
745
|
uint64(fees),
|
|
762
746
|
conds,
|
|
763
747
|
spend_name,
|
|
@@ -776,7 +760,7 @@ class MempoolManager:
|
|
|
776
760
|
|
|
777
761
|
if fail_reason is Err.MEMPOOL_CONFLICT:
|
|
778
762
|
log.debug(f"Replace attempted. number of MempoolItems: {len(conflicts)}")
|
|
779
|
-
if not can_replace(conflicts,
|
|
763
|
+
if not can_replace(conflicts, potential):
|
|
780
764
|
return Err.MEMPOOL_CONFLICT, potential, []
|
|
781
765
|
|
|
782
766
|
duration = time.monotonic() - start_time
|
|
@@ -797,7 +781,7 @@ class MempoolManager:
|
|
|
797
781
|
"""Returns a full SpendBundle if it's inside one the mempools"""
|
|
798
782
|
item: Optional[MempoolItem] = self.mempool.get_item_by_id(bundle_hash)
|
|
799
783
|
if item is not None:
|
|
800
|
-
return item.
|
|
784
|
+
return item.to_spend_bundle()
|
|
801
785
|
return None
|
|
802
786
|
|
|
803
787
|
def get_mempool_item(self, bundle_hash: bytes32, include_pending: bool = False) -> Optional[MempoolItem]:
|
|
@@ -950,8 +934,7 @@ class MempoolManager:
|
|
|
950
934
|
|
|
951
935
|
removals: set[bytes32] = set()
|
|
952
936
|
for item in old_pool.all_items():
|
|
953
|
-
|
|
954
|
-
removals.add(s.coin.name())
|
|
937
|
+
removals.update(item.bundle_coin_spends)
|
|
955
938
|
|
|
956
939
|
for record in await self.get_coin_records(removals):
|
|
957
940
|
name = record.coin.name()
|
|
@@ -967,7 +950,7 @@ class MempoolManager:
|
|
|
967
950
|
|
|
968
951
|
for item in old_pool.all_items():
|
|
969
952
|
info = await self.add_spend_bundle(
|
|
970
|
-
item.
|
|
953
|
+
item.to_spend_bundle(),
|
|
971
954
|
item.conds,
|
|
972
955
|
item.spend_bundle_name,
|
|
973
956
|
item.height_added_to_mempool,
|
|
@@ -989,7 +972,7 @@ class MempoolManager:
|
|
|
989
972
|
txs_added = []
|
|
990
973
|
for item in potential_txs.values():
|
|
991
974
|
info = await self.add_spend_bundle(
|
|
992
|
-
item.
|
|
975
|
+
item.to_spend_bundle(),
|
|
993
976
|
item.conds,
|
|
994
977
|
item.spend_bundle_name,
|
|
995
978
|
item.height_added_to_mempool,
|
|
@@ -997,7 +980,7 @@ class MempoolManager:
|
|
|
997
980
|
lineage_cache.get_unspent_lineage_info,
|
|
998
981
|
)
|
|
999
982
|
if info.status == MempoolInclusionStatus.SUCCESS:
|
|
1000
|
-
txs_added.append(
|
|
983
|
+
txs_added.append(item.spend_bundle_name)
|
|
1001
984
|
mempool_item_removals.extend(info.removals)
|
|
1002
985
|
log.info(
|
|
1003
986
|
f"Size of mempool: {self.mempool.size()} spends, "
|
|
@@ -1020,7 +1003,7 @@ class MempoolManager:
|
|
|
1020
1003
|
return items
|
|
1021
1004
|
if mempool_filter.Match(bytearray(item.spend_bundle_name)):
|
|
1022
1005
|
continue
|
|
1023
|
-
items.append(item.
|
|
1006
|
+
items.append(item.to_spend_bundle())
|
|
1024
1007
|
|
|
1025
1008
|
return items
|
|
1026
1009
|
|
|
@@ -1036,17 +1019,12 @@ def optional_max(a: Optional[T], b: Optional[T]) -> Optional[T]:
|
|
|
1036
1019
|
return max((v for v in [a, b] if v is not None), default=None)
|
|
1037
1020
|
|
|
1038
1021
|
|
|
1039
|
-
def can_replace(
|
|
1040
|
-
conflicting_items: list[MempoolItem],
|
|
1041
|
-
removal_names: set[bytes32],
|
|
1042
|
-
new_item: MempoolItem,
|
|
1043
|
-
) -> bool:
|
|
1022
|
+
def can_replace(conflicting_items: list[MempoolItem], new_item: MempoolItem) -> bool:
|
|
1044
1023
|
"""
|
|
1045
1024
|
This function implements the mempool replacement rules. Given a Mempool item
|
|
1046
1025
|
we're attempting to insert into the mempool (new_item) and the set of existing
|
|
1047
1026
|
mempool items that conflict with it, this function answers the question whether
|
|
1048
|
-
the existing items can be replaced by the new one.
|
|
1049
|
-
the coin IDs the new mempool item is spending.
|
|
1027
|
+
the existing items can be replaced by the new one.
|
|
1050
1028
|
"""
|
|
1051
1029
|
|
|
1052
1030
|
conflicting_fees = 0
|
|
@@ -1071,10 +1049,10 @@ def can_replace(
|
|
|
1071
1049
|
# fee than AB therefore kicking out A altogether. The better way to solve this would be to keep a cache
|
|
1072
1050
|
# of booted transactions like A, and retry them after they get removed from mempool due to a conflict.
|
|
1073
1051
|
for coin_id, bcs in item.bundle_coin_spends.items():
|
|
1074
|
-
if coin_id not in
|
|
1052
|
+
if coin_id not in new_item.bundle_coin_spends:
|
|
1075
1053
|
log.debug("Rejecting conflicting tx as it does not spend conflicting coin %s", coin_id)
|
|
1076
1054
|
return False
|
|
1077
|
-
if bcs.
|
|
1055
|
+
if bcs.supports_fast_forward:
|
|
1078
1056
|
existing_ff_spends.add(bytes32(coin_id))
|
|
1079
1057
|
if bcs.eligible_for_dedup:
|
|
1080
1058
|
existing_dedup_spends.add(bytes32(coin_id))
|
|
@@ -1125,7 +1103,7 @@ def can_replace(
|
|
|
1125
1103
|
|
|
1126
1104
|
if len(existing_ff_spends) > 0 or len(existing_dedup_spends) > 0:
|
|
1127
1105
|
for coin_id, bcs in new_item.bundle_coin_spends.items():
|
|
1128
|
-
if not bcs.
|
|
1106
|
+
if not bcs.supports_fast_forward and coin_id in existing_ff_spends:
|
|
1129
1107
|
log.debug("Rejecting conflicting tx due to changing ELIGIBLE_FOR_FF of coin spend %s", coin_id)
|
|
1130
1108
|
return False
|
|
1131
1109
|
|
|
@@ -15,8 +15,8 @@ from chia.consensus.default_constants import DEFAULT_CONSTANTS, update_testnet_o
|
|
|
15
15
|
from chia.full_node.full_node import FullNode
|
|
16
16
|
from chia.full_node.full_node_api import FullNodeAPI
|
|
17
17
|
from chia.full_node.full_node_rpc_api import FullNodeRpcApi
|
|
18
|
+
from chia.full_node.full_node_service import FullNodeService
|
|
18
19
|
from chia.protocols.outbound_message import NodeType
|
|
19
|
-
from chia.server.aliases import FullNodeService
|
|
20
20
|
from chia.server.resolve_peer_info import get_unresolved_peer_infos
|
|
21
21
|
from chia.server.signal_handlers import SignalHandlers
|
|
22
22
|
from chia.server.start_service import RpcInfo, Service, async_run
|
chia/full_node/subscriptions.py
CHANGED
|
@@ -225,11 +225,11 @@ def peers_for_spend_bundle(
|
|
|
225
225
|
|
|
226
226
|
for spend in conds.spends:
|
|
227
227
|
coin_ids.add(bytes32(spend.coin_id))
|
|
228
|
-
puzzle_hashes.add(
|
|
228
|
+
puzzle_hashes.add(spend.puzzle_hash)
|
|
229
229
|
|
|
230
230
|
for puzzle_hash, amount, memo in spend.create_coin:
|
|
231
231
|
coin_ids.add(Coin(spend.coin_id, puzzle_hash, uint64(amount)).name())
|
|
232
|
-
puzzle_hashes.add(
|
|
232
|
+
puzzle_hashes.add(puzzle_hash)
|
|
233
233
|
|
|
234
234
|
if memo is not None and len(memo) == 32:
|
|
235
235
|
puzzle_hashes.add(bytes32(memo))
|
chia/full_node/weight_proof.py
CHANGED
|
@@ -411,17 +411,16 @@ class WeightProofHandler:
|
|
|
411
411
|
while not curr_sub_rec.sub_epoch_summary_included:
|
|
412
412
|
curr_sub_rec = blocks[curr_sub_rec.prev_hash]
|
|
413
413
|
first_rc_end_of_slot_vdf = self.first_rc_end_of_slot_vdf(header_block, blocks, header_blocks)
|
|
414
|
+
elif header_block_sub_rec.overflow and header_block_sub_rec.first_in_sub_slot:
|
|
415
|
+
sub_slots_num = 2
|
|
416
|
+
while sub_slots_num > 0 and curr_sub_rec.height > 0:
|
|
417
|
+
if curr_sub_rec.first_in_sub_slot:
|
|
418
|
+
assert curr_sub_rec.finished_challenge_slot_hashes is not None
|
|
419
|
+
sub_slots_num -= len(curr_sub_rec.finished_challenge_slot_hashes)
|
|
420
|
+
curr_sub_rec = blocks[curr_sub_rec.prev_hash]
|
|
414
421
|
else:
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
while sub_slots_num > 0 and curr_sub_rec.height > 0:
|
|
418
|
-
if curr_sub_rec.first_in_sub_slot:
|
|
419
|
-
assert curr_sub_rec.finished_challenge_slot_hashes is not None
|
|
420
|
-
sub_slots_num -= len(curr_sub_rec.finished_challenge_slot_hashes)
|
|
421
|
-
curr_sub_rec = blocks[curr_sub_rec.prev_hash]
|
|
422
|
-
else:
|
|
423
|
-
while not curr_sub_rec.first_in_sub_slot and curr_sub_rec.height > 0:
|
|
424
|
-
curr_sub_rec = blocks[curr_sub_rec.prev_hash]
|
|
422
|
+
while not curr_sub_rec.first_in_sub_slot and curr_sub_rec.height > 0:
|
|
423
|
+
curr_sub_rec = blocks[curr_sub_rec.prev_hash]
|
|
425
424
|
|
|
426
425
|
curr = header_blocks[curr_sub_rec.header_hash]
|
|
427
426
|
sub_slots_data: list[SubSlotData] = []
|
|
@@ -673,7 +672,7 @@ def _get_weights_for_sampling(
|
|
|
673
672
|
q = 1 - delta**u
|
|
674
673
|
# todo check division and type conversions
|
|
675
674
|
weight = q * float(total_weight)
|
|
676
|
-
weight_to_check.append(uint128(
|
|
675
|
+
weight_to_check.append(uint128(weight))
|
|
677
676
|
weight_to_check.sort()
|
|
678
677
|
return weight_to_check
|
|
679
678
|
|
|
@@ -1533,10 +1532,10 @@ def _get_last_ses_hash(
|
|
|
1533
1532
|
) -> tuple[Optional[bytes32], uint32]:
|
|
1534
1533
|
for idx, block in enumerate(reversed(recent_reward_chain)):
|
|
1535
1534
|
if (block.reward_chain_block.height % constants.SUB_EPOCH_BLOCKS) == 0:
|
|
1536
|
-
|
|
1535
|
+
original_idx = len(recent_reward_chain) - 1 - idx # reverse
|
|
1537
1536
|
# find first block after sub slot end
|
|
1538
|
-
while
|
|
1539
|
-
curr = recent_reward_chain[
|
|
1537
|
+
while original_idx < len(recent_reward_chain):
|
|
1538
|
+
curr = recent_reward_chain[original_idx]
|
|
1540
1539
|
if len(curr.finished_sub_slots) > 0:
|
|
1541
1540
|
for slot in curr.finished_sub_slots:
|
|
1542
1541
|
if slot.challenge_chain.subepoch_summary_hash is not None:
|
|
@@ -1544,7 +1543,7 @@ def _get_last_ses_hash(
|
|
|
1544
1543
|
slot.challenge_chain.subepoch_summary_hash,
|
|
1545
1544
|
curr.reward_chain_block.height,
|
|
1546
1545
|
)
|
|
1547
|
-
|
|
1546
|
+
original_idx += 1
|
|
1548
1547
|
return None, uint32(0)
|
|
1549
1548
|
|
|
1550
1549
|
|
chia/harvester/harvester.py
CHANGED
|
@@ -190,10 +190,17 @@ class Harvester:
|
|
|
190
190
|
with self.plot_manager:
|
|
191
191
|
for path, plot_info in self.plot_manager.plots.items():
|
|
192
192
|
prover = plot_info.prover
|
|
193
|
+
size = prover.get_size()
|
|
194
|
+
if size.size_v1 is not None:
|
|
195
|
+
k = size.size_v1
|
|
196
|
+
else:
|
|
197
|
+
assert size.size_v2 is not None
|
|
198
|
+
k = size.size_v2
|
|
199
|
+
# TODO: todo_v2_plots support v2 plots in RPC response
|
|
193
200
|
response_plots.append(
|
|
194
201
|
{
|
|
195
202
|
"filename": str(path),
|
|
196
|
-
"size":
|
|
203
|
+
"size": k,
|
|
197
204
|
"plot_id": prover.get_id(),
|
|
198
205
|
"pool_public_key": plot_info.pool_public_key,
|
|
199
206
|
"pool_contract_puzzle_hash": plot_info.pool_contract_puzzle_hash,
|