chia-blockchain 2.5.6rc2__py3-none-any.whl → 2.5.7__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.
Files changed (370) hide show
  1. chia/_tests/blockchain/blockchain_test_utils.py +6 -7
  2. chia/_tests/blockchain/test_augmented_chain.py +4 -3
  3. chia/_tests/blockchain/test_blockchain.py +10 -5
  4. chia/_tests/clvm/coin_store.py +1 -1
  5. chia/_tests/cmds/cmd_test_utils.py +84 -97
  6. chia/_tests/cmds/test_dev_gh.py +1 -1
  7. chia/_tests/cmds/test_farm_cmd.py +56 -2
  8. chia/_tests/cmds/wallet/test_consts.py +3 -1
  9. chia/_tests/cmds/wallet/test_did.py +3 -8
  10. chia/_tests/cmds/wallet/test_nft.py +6 -6
  11. chia/_tests/cmds/wallet/test_notifications.py +39 -21
  12. chia/_tests/cmds/wallet/test_vcs.py +2 -1
  13. chia/_tests/cmds/wallet/test_wallet.py +160 -136
  14. chia/_tests/conftest.py +51 -26
  15. chia/_tests/core/cmds/test_wallet.py +4 -3
  16. chia/_tests/core/consensus/test_pot_iterations.py +71 -24
  17. chia/_tests/core/custom_types/test_proof_of_space.py +60 -30
  18. chia/_tests/core/custom_types/test_spend_bundle.py +1 -4
  19. chia/_tests/core/data_layer/conftest.py +7 -2
  20. chia/_tests/core/data_layer/old_format/__init__.py +0 -0
  21. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-005876c1cdc4d5f1726551b207b9f63efc9cd2f72df80a3a26a1ba73d40d6745-delta-23-v1.0.dat +0 -0
  22. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-005876c1cdc4d5f1726551b207b9f63efc9cd2f72df80a3a26a1ba73d40d6745-full-23-v1.0.dat +0 -0
  23. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-01b36e72a975cdc00d6514eea81668d19e8ea3150217ae98cb3361688a016fab-delta-9-v1.0.dat +0 -0
  24. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-01b36e72a975cdc00d6514eea81668d19e8ea3150217ae98cb3361688a016fab-full-9-v1.0.dat +0 -0
  25. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-06147c3b12d73e9b83b686a8c10b4a36a513c8a93c0ff99ae197f06326278be9-delta-5-v1.0.dat +0 -0
  26. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-06147c3b12d73e9b83b686a8c10b4a36a513c8a93c0ff99ae197f06326278be9-full-5-v1.0.dat +0 -0
  27. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-073c051a5934ad3b8db39eee2189e4300e55f48aaa17ff4ae30eeae088ff544a-delta-22-v1.0.dat +0 -0
  28. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-073c051a5934ad3b8db39eee2189e4300e55f48aaa17ff4ae30eeae088ff544a-full-22-v1.0.dat +0 -0
  29. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-0cc077559b9c7b4aefe8f8f591c195e0779bebdf89f2ad8285a00ea5f859d965-delta-1-v1.0.dat +0 -0
  30. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-0cc077559b9c7b4aefe8f8f591c195e0779bebdf89f2ad8285a00ea5f859d965-full-1-v1.0.dat +0 -0
  31. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-16377275567b723b20936d3f1ec0a2fd83f6ac379b922351a5e4c54949069f3b-delta-2-v1.0.dat +0 -0
  32. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-16377275567b723b20936d3f1ec0a2fd83f6ac379b922351a5e4c54949069f3b-full-2-v1.0.dat +0 -0
  33. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-1cb824a7a5f02cd30ac6c38e8f6216780d9bfa2d24811d282a368dcd541438a7-delta-29-v1.0.dat +0 -0
  34. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-1cb824a7a5f02cd30ac6c38e8f6216780d9bfa2d24811d282a368dcd541438a7-full-29-v1.0.dat +0 -0
  35. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-27b89dc4809ebc5a3b87757d35e95e2761d978cf121e44fa2773a5c06e4cc7b5-delta-28-v1.0.dat +0 -0
  36. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-27b89dc4809ebc5a3b87757d35e95e2761d978cf121e44fa2773a5c06e4cc7b5-full-28-v1.0.dat +0 -0
  37. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-28a6b7c134abfaeb0ab58a018313f6c87a61a40a4d9ec9bedf53aa1d12f3ee37-delta-7-v1.0.dat +0 -0
  38. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-28a6b7c134abfaeb0ab58a018313f6c87a61a40a4d9ec9bedf53aa1d12f3ee37-full-7-v1.0.dat +0 -0
  39. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-30a6bfe7cecbeda259a295dc6de3a436357f52388c3b03d86901e7da68565aeb-delta-19-v1.0.dat +0 -0
  40. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-30a6bfe7cecbeda259a295dc6de3a436357f52388c3b03d86901e7da68565aeb-full-19-v1.0.dat +0 -0
  41. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-343a2bf9add798e3ac2e6a571823cf9fa7e8a1bed532143354ead2648bd036ef-delta-10-v1.0.dat +0 -0
  42. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-343a2bf9add798e3ac2e6a571823cf9fa7e8a1bed532143354ead2648bd036ef-full-10-v1.0.dat +0 -0
  43. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4d90efbc1fb3df324193831ea4a57dd5e10e67d9653343eb18d178272adb0447-delta-17-v1.0.dat +0 -0
  44. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4d90efbc1fb3df324193831ea4a57dd5e10e67d9653343eb18d178272adb0447-full-17-v1.0.dat +0 -0
  45. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4dd2ea099e91635c441f40b36d3f84078a2d818d2dc601c7278e72cbdfe3eca8-delta-20-v1.0.dat +0 -0
  46. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4dd2ea099e91635c441f40b36d3f84078a2d818d2dc601c7278e72cbdfe3eca8-full-20-v1.0.dat +0 -0
  47. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-509effbdca78639023b933ce6c08a0465fb247e1cd5329e9e9c553940e4b6e46-delta-31-v1.0.dat +0 -0
  48. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-509effbdca78639023b933ce6c08a0465fb247e1cd5329e9e9c553940e4b6e46-full-31-v1.0.dat +0 -0
  49. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5379a4d9ff29c29d1ef0906d22e82c52472753d31806189ab813c43365341b78-delta-40-v1.0.dat +0 -0
  50. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5379a4d9ff29c29d1ef0906d22e82c52472753d31806189ab813c43365341b78-full-40-v1.0.dat +0 -0
  51. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-55908eda5686a8f89e4c50672cbe893ec1734fb23449dc03325efe7c414f9aa4-delta-49-v1.0.dat +0 -0
  52. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-55908eda5686a8f89e4c50672cbe893ec1734fb23449dc03325efe7c414f9aa4-full-49-v1.0.dat +0 -0
  53. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-57cc2691fb1fb986c99a58bcb0e029d0cd0cff41553d703147c54196d7d9ca63-delta-14-v1.0.dat +0 -0
  54. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-57cc2691fb1fb986c99a58bcb0e029d0cd0cff41553d703147c54196d7d9ca63-full-14-v1.0.dat +0 -0
  55. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5943bf8ae4f5e59969d8570e4f40a8223299febdcfbcf188b3b3e2ab11044e18-delta-34-v1.0.dat +0 -0
  56. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5943bf8ae4f5e59969d8570e4f40a8223299febdcfbcf188b3b3e2ab11044e18-full-34-v1.0.dat +0 -0
  57. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6518527b7c939bee60ce6b024cbe90d3b9d8913c56b8ce11a4df5da7ff7db1c8-delta-8-v1.0.dat +0 -0
  58. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6518527b7c939bee60ce6b024cbe90d3b9d8913c56b8ce11a4df5da7ff7db1c8-full-8-v1.0.dat +0 -0
  59. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-66ff26a26620379e14a7c91252d27ee4dbe06ad69a3a390a88642fe757f2b288-delta-45-v1.0.dat +0 -0
  60. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-66ff26a26620379e14a7c91252d27ee4dbe06ad69a3a390a88642fe757f2b288-full-45-v1.0.dat +0 -0
  61. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6bd0a508ee2c4afbe9d4daa811139fd6e54e7f4e16850cbce999fa30f8bdccd2-delta-6-v1.0.dat +0 -0
  62. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6bd0a508ee2c4afbe9d4daa811139fd6e54e7f4e16850cbce999fa30f8bdccd2-full-6-v1.0.dat +0 -0
  63. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6ce850d0d77ca743fcc2fc792747472e5d2c1c0813aa43abbb370554428fc897-delta-48-v1.0.dat +0 -0
  64. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6ce850d0d77ca743fcc2fc792747472e5d2c1c0813aa43abbb370554428fc897-full-48-v1.0.dat +0 -0
  65. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6eb4ca2e1552b156c5969396b49070eb08ad6c96b347359387519be59f7ccaed-delta-26-v1.0.dat +0 -0
  66. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6eb4ca2e1552b156c5969396b49070eb08ad6c96b347359387519be59f7ccaed-full-26-v1.0.dat +0 -0
  67. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-71c797fb7592d3f0a5a20c79ab8497ddaa0fd9ec17712e109d25c91b3f3c76e5-delta-3-v1.0.dat +0 -0
  68. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-71c797fb7592d3f0a5a20c79ab8497ddaa0fd9ec17712e109d25c91b3f3c76e5-full-3-v1.0.dat +0 -0
  69. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-73357026053d5a4969e7a6b9aeeef91c14cc6d5f32fc700fe6d21d2a1b22496c-delta-25-v1.0.dat +0 -0
  70. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-73357026053d5a4969e7a6b9aeeef91c14cc6d5f32fc700fe6d21d2a1b22496c-full-25-v1.0.dat +0 -0
  71. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-7c897e5c46e834ced65bde7de87716acfaa5dffbdb30b5cd9377d8c319df2034-delta-35-v1.0.dat +0 -0
  72. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-7c897e5c46e834ced65bde7de87716acfaa5dffbdb30b5cd9377d8c319df2034-full-35-v1.0.dat +0 -0
  73. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-87b8394d80d08117a5a1cd04ed8a682564eab7197a2c090159863591b5108874-delta-4-v1.0.dat +0 -0
  74. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-87b8394d80d08117a5a1cd04ed8a682564eab7197a2c090159863591b5108874-full-4-v1.0.dat +0 -0
  75. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-89eb40b9cc0921c5f5c3feb20927c13a9ada5760f82d219dcee153b7d400165c-delta-41-v1.0.dat +0 -0
  76. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-89eb40b9cc0921c5f5c3feb20927c13a9ada5760f82d219dcee153b7d400165c-full-41-v1.0.dat +0 -0
  77. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8b649433156b8c924436cdec9c6de26106fd6f73a0528570f48748f7b40d7f8a-delta-21-v1.0.dat +0 -0
  78. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8b649433156b8c924436cdec9c6de26106fd6f73a0528570f48748f7b40d7f8a-full-21-v1.0.dat +0 -0
  79. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8d364023a0834c8c3077e236a465493acbf488e4f9d1f4c6cc230343c10a8f7d-delta-42-v1.0.dat +0 -0
  80. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8d364023a0834c8c3077e236a465493acbf488e4f9d1f4c6cc230343c10a8f7d-full-42-v1.0.dat +0 -0
  81. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-925689e24a3d98d98676d816cdd8b73e7b2df057d9d4503da9b27bf91d79666c-delta-38-v1.0.dat +0 -0
  82. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-925689e24a3d98d98676d816cdd8b73e7b2df057d9d4503da9b27bf91d79666c-full-38-v1.0.dat +0 -0
  83. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-937be3d428b19f521be4f98faecc3307ae11ee731c76992f417fa4268d13859e-delta-11-v1.0.dat +0 -0
  84. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-937be3d428b19f521be4f98faecc3307ae11ee731c76992f417fa4268d13859e-full-11-v1.0.dat +0 -0
  85. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-97f34af499b79e2111fc296a598fc9654c2467ea038dfea41fd58241fb3642de-delta-32-v1.0.dat +0 -0
  86. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-97f34af499b79e2111fc296a598fc9654c2467ea038dfea41fd58241fb3642de-full-32-v1.0.dat +0 -0
  87. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-9d1b737243b8a1d0022f2b36ac53333c6280354a74d77f2a3642dcab35204e59-delta-33-v1.0.dat +0 -0
  88. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-9d1b737243b8a1d0022f2b36ac53333c6280354a74d77f2a3642dcab35204e59-full-33-v1.0.dat +0 -0
  89. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-a6663f98ef6ddf6db55f01163e34bb2e87aa82f0347e79ce31e8dbfa390c480c-delta-47-v1.0.dat +0 -0
  90. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-a6663f98ef6ddf6db55f01163e34bb2e87aa82f0347e79ce31e8dbfa390c480c-full-47-v1.0.dat +0 -0
  91. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-aa77376d1ccd3664e5c6366e010c52a978fedbf40f5ce262fee71b2e7fe0c6a9-delta-50-v1.0.dat +0 -0
  92. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-aa77376d1ccd3664e5c6366e010c52a978fedbf40f5ce262fee71b2e7fe0c6a9-full-50-v1.0.dat +0 -0
  93. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b0f28514741ed1a71f5c6544bf92f9e0e493c5f3cf28328909771d8404eff626-delta-24-v1.0.dat +0 -0
  94. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b0f28514741ed1a71f5c6544bf92f9e0e493c5f3cf28328909771d8404eff626-full-24-v1.0.dat +0 -0
  95. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b3efee5358e6eb89ab3b60db2d128d57eef39e8538fb63c5632412d4f8e7d09e-delta-44-v1.0.dat +0 -0
  96. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b3efee5358e6eb89ab3b60db2d128d57eef39e8538fb63c5632412d4f8e7d09e-full-44-v1.0.dat +0 -0
  97. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bb0b56b6eb7acbb4e80893b04c72412fe833418232e1ed7b06d97d7a7f08b4e1-delta-16-v1.0.dat +0 -0
  98. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bb0b56b6eb7acbb4e80893b04c72412fe833418232e1ed7b06d97d7a7f08b4e1-full-16-v1.0.dat +0 -0
  99. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bc45262b757ff494b53bd2a8fba0f5511cc1f9c2a2c5360e04ea8cebbf6409df-delta-13-v1.0.dat +0 -0
  100. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bc45262b757ff494b53bd2a8fba0f5511cc1f9c2a2c5360e04ea8cebbf6409df-full-13-v1.0.dat +0 -0
  101. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bd0494ba430aff13458b557113b073d226eaf11257dfe26ff3323fa1cfe1335b-delta-39-v1.0.dat +0 -0
  102. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bd0494ba430aff13458b557113b073d226eaf11257dfe26ff3323fa1cfe1335b-full-39-v1.0.dat +0 -0
  103. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cd04f5fbba1553fa728b4dd8131d4723aaac288e0c7dc080447fbf0872c0a6eb-delta-36-v1.0.dat +0 -0
  104. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cd04f5fbba1553fa728b4dd8131d4723aaac288e0c7dc080447fbf0872c0a6eb-full-36-v1.0.dat +0 -0
  105. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cdd2399557fb3163a848f08831fdc833703354edb19a0d32a965fdb140f160c2-delta-18-v1.0.dat +0 -0
  106. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cdd2399557fb3163a848f08831fdc833703354edb19a0d32a965fdb140f160c2-full-18-v1.0.dat +0 -0
  107. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cf7a08fca7b1332095242e4d9800f4b94a3f4eaae88fe8407da42736d54b9e18-delta-37-v1.0.dat +0 -0
  108. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cf7a08fca7b1332095242e4d9800f4b94a3f4eaae88fe8407da42736d54b9e18-full-37-v1.0.dat +0 -0
  109. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-d1f97465a9f52187e2ef3a0d811a1258f52380a65340c55f3e8e65b92753bc13-delta-15-v1.0.dat +0 -0
  110. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-d1f97465a9f52187e2ef3a0d811a1258f52380a65340c55f3e8e65b92753bc13-full-15-v1.0.dat +0 -0
  111. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e475eccd4ee597e5ff67b1a249e37d65d6e3f754c3f0379fdb43692513588fef-delta-46-v1.0.dat +0 -0
  112. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e475eccd4ee597e5ff67b1a249e37d65d6e3f754c3f0379fdb43692513588fef-full-46-v1.0.dat +0 -0
  113. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e82e63517d78fd65b23a05c3b9a98cf905ddad7026995a238bfe634006b84cd0-delta-27-v1.0.dat +0 -0
  114. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e82e63517d78fd65b23a05c3b9a98cf905ddad7026995a238bfe634006b84cd0-full-27-v1.0.dat +0 -0
  115. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-ed2cf0fd6c0f6237c87c161e1fca303b3fbe6c04e01f652b88720b4572143349-delta-12-v1.0.dat +0 -0
  116. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-ed2cf0fd6c0f6237c87c161e1fca303b3fbe6c04e01f652b88720b4572143349-full-12-v1.0.dat +0 -0
  117. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f6e454eaf24a83c46a7bed4c19260a0a3ce0ed5c51739cb6d748d4913dc2ef58-delta-30-v1.0.dat +0 -0
  118. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f6e454eaf24a83c46a7bed4c19260a0a3ce0ed5c51739cb6d748d4913dc2ef58-full-30-v1.0.dat +0 -0
  119. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f7ad2bdf86d9609b4d6381086ec1e296bf558e2ff467ead29dd7fa6e31bacc56-delta-43-v1.0.dat +0 -0
  120. chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f7ad2bdf86d9609b4d6381086ec1e296bf558e2ff467ead29dd7fa6e31bacc56-full-43-v1.0.dat +0 -0
  121. chia/_tests/core/data_layer/old_format/files/__init__.py +0 -0
  122. chia/_tests/core/data_layer/old_format/old_db.sqlite +0 -0
  123. chia/_tests/core/data_layer/test_data_layer_util.py +18 -21
  124. chia/_tests/core/data_layer/test_data_rpc.py +77 -28
  125. chia/_tests/core/data_layer/test_data_store.py +637 -700
  126. chia/_tests/core/data_layer/test_data_store_schema.py +2 -209
  127. chia/_tests/core/full_node/ram_db.py +1 -1
  128. chia/_tests/core/full_node/stores/test_block_store.py +4 -10
  129. chia/_tests/core/full_node/stores/test_coin_store.py +1 -1
  130. chia/_tests/core/full_node/test_address_manager.py +3 -3
  131. chia/_tests/core/full_node/test_block_height_map.py +1 -1
  132. chia/_tests/core/full_node/test_full_node.py +91 -30
  133. chia/_tests/core/full_node/test_generator_tools.py +17 -10
  134. chia/_tests/core/mempool/test_mempool.py +190 -90
  135. chia/_tests/core/mempool/test_mempool_fee_estimator.py +2 -4
  136. chia/_tests/core/mempool/test_mempool_item_queries.py +1 -1
  137. chia/_tests/core/mempool/test_mempool_manager.py +252 -77
  138. chia/_tests/core/mempool/test_singleton_fast_forward.py +9 -27
  139. chia/_tests/core/server/serve.py +0 -2
  140. chia/_tests/core/server/test_rate_limits.py +400 -347
  141. chia/_tests/core/server/test_server.py +2 -2
  142. chia/_tests/core/services/test_services.py +7 -7
  143. chia/_tests/core/test_cost_calculation.py +31 -10
  144. chia/_tests/core/test_crawler.py +4 -4
  145. chia/_tests/core/test_db_conversion.py +7 -14
  146. chia/_tests/core/test_db_validation.py +2 -6
  147. chia/_tests/core/test_farmer_harvester_rpc.py +34 -1
  148. chia/_tests/core/test_full_node_rpc.py +28 -24
  149. chia/_tests/core/test_merkle_set.py +1 -4
  150. chia/_tests/core/test_seeder.py +1 -1
  151. chia/_tests/core/util/test_keychain.py +2 -2
  152. chia/_tests/core/util/test_lru_cache.py +16 -0
  153. chia/_tests/core/util/test_streamable.py +85 -4
  154. chia/_tests/environments/wallet.py +4 -1
  155. chia/_tests/farmer_harvester/test_farmer.py +8 -6
  156. chia/_tests/farmer_harvester/test_farmer_harvester.py +306 -8
  157. chia/_tests/farmer_harvester/test_filter_prefix_bits.py +3 -3
  158. chia/_tests/farmer_harvester/test_third_party_harvesters.py +11 -11
  159. chia/_tests/fee_estimation/test_fee_estimation_integration.py +2 -2
  160. chia/_tests/fee_estimation/test_fee_estimation_rpc.py +1 -1
  161. chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +1 -2
  162. chia/_tests/generator/test_rom.py +2 -1
  163. chia/_tests/harvester/__init__.py +0 -0
  164. chia/_tests/harvester/config.py +4 -0
  165. chia/_tests/harvester/test_harvester_api.py +157 -0
  166. chia/_tests/plot_sync/test_plot_sync.py +6 -3
  167. chia/_tests/plot_sync/test_receiver.py +16 -4
  168. chia/_tests/plot_sync/test_sender.py +8 -7
  169. chia/_tests/plot_sync/test_sync_simulated.py +15 -13
  170. chia/_tests/plot_sync/util.py +3 -2
  171. chia/_tests/plotting/test_plot_manager.py +21 -5
  172. chia/_tests/plotting/test_prover.py +106 -0
  173. chia/_tests/pools/test_pool_cmdline.py +7 -6
  174. chia/_tests/pools/test_pool_puzzles_lifecycle.py +10 -3
  175. chia/_tests/pools/test_pool_rpc.py +92 -64
  176. chia/_tests/solver/__init__.py +0 -0
  177. chia/_tests/solver/config.py +4 -0
  178. chia/_tests/solver/test_solver_service.py +29 -0
  179. chia/_tests/timelord/test_new_peak.py +1 -1
  180. chia/_tests/timelord/test_timelord.py +1 -1
  181. chia/_tests/util/benchmarks.py +5 -12
  182. chia/_tests/util/blockchain.py +1 -1
  183. chia/_tests/util/build_network_protocol_files.py +7 -0
  184. chia/_tests/util/network_protocol_data.py +26 -0
  185. chia/_tests/util/protocol_messages_bytes-v1.0 +0 -0
  186. chia/_tests/util/protocol_messages_json.py +19 -0
  187. chia/_tests/util/setup_nodes.py +21 -2
  188. chia/_tests/util/spend_sim.py +9 -3
  189. chia/_tests/util/test_condition_tools.py +3 -2
  190. chia/_tests/util/test_full_block_utils.py +10 -9
  191. chia/_tests/util/test_misc.py +10 -10
  192. chia/_tests/util/test_network.py +32 -1
  193. chia/_tests/util/test_network_protocol_files.py +333 -318
  194. chia/_tests/util/test_network_protocol_json.py +6 -0
  195. chia/_tests/util/test_network_protocol_test.py +27 -0
  196. chia/_tests/util/test_priority_mutex.py +1 -1
  197. chia/_tests/util/test_replace_str_to_bytes.py +6 -6
  198. chia/_tests/wallet/cat_wallet/test_cat_wallet.py +17 -13
  199. chia/_tests/wallet/cat_wallet/test_trades.py +55 -55
  200. chia/_tests/wallet/did_wallet/test_did.py +118 -1229
  201. chia/_tests/wallet/nft_wallet/config.py +1 -1
  202. chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +73 -96
  203. chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +15 -12
  204. chia/_tests/wallet/nft_wallet/test_nft_offers.py +67 -134
  205. chia/_tests/wallet/nft_wallet/test_nft_wallet.py +31 -26
  206. chia/_tests/wallet/rpc/test_wallet_rpc.py +765 -371
  207. chia/_tests/wallet/sync/test_wallet_sync.py +6 -0
  208. chia/_tests/wallet/test_new_wallet_protocol.py +1 -1
  209. chia/_tests/wallet/test_signer_protocol.py +2 -2
  210. chia/_tests/wallet/test_singleton_lifecycle_fast.py +3 -4
  211. chia/_tests/wallet/test_transaction_store.py +42 -33
  212. chia/_tests/wallet/test_wallet.py +22 -31
  213. chia/_tests/wallet/test_wallet_state_manager.py +14 -7
  214. chia/_tests/wallet/vc_wallet/test_vc_wallet.py +53 -32
  215. chia/apis.py +2 -0
  216. chia/cmds/beta.py +7 -3
  217. chia/cmds/chia.py +2 -0
  218. chia/cmds/cmd_classes.py +11 -27
  219. chia/cmds/cmds_util.py +3 -0
  220. chia/cmds/coin_funcs.py +27 -22
  221. chia/cmds/configure.py +42 -18
  222. chia/cmds/dev/data.py +22 -3
  223. chia/cmds/farm.py +32 -0
  224. chia/cmds/farm_funcs.py +54 -5
  225. chia/cmds/init_funcs.py +4 -0
  226. chia/cmds/keys_funcs.py +8 -10
  227. chia/cmds/peer_funcs.py +8 -10
  228. chia/cmds/plotnft_funcs.py +24 -16
  229. chia/cmds/rpc.py +11 -1
  230. chia/cmds/show_funcs.py +5 -5
  231. chia/cmds/solver.py +33 -0
  232. chia/cmds/solver_funcs.py +21 -0
  233. chia/cmds/wallet.py +1 -1
  234. chia/cmds/wallet_funcs.py +149 -96
  235. chia/consensus/block_body_validation.py +8 -9
  236. chia/consensus/block_creation.py +9 -10
  237. chia/consensus/block_header_validation.py +61 -69
  238. chia/{full_node → consensus}/block_height_map.py +2 -1
  239. chia/consensus/block_height_map_protocol.py +21 -0
  240. chia/consensus/block_rewards.py +12 -12
  241. chia/consensus/blockchain.py +8 -18
  242. chia/consensus/default_constants.py +6 -6
  243. chia/consensus/generator_tools.py +1 -1
  244. chia/consensus/get_block_challenge.py +24 -25
  245. chia/consensus/pos_quality.py +28 -2
  246. chia/consensus/pot_iterations.py +15 -17
  247. chia/daemon/keychain_proxy.py +5 -0
  248. chia/daemon/server.py +2 -3
  249. chia/data_layer/data_layer.py +32 -24
  250. chia/data_layer/data_layer_errors.py +5 -0
  251. chia/data_layer/data_layer_rpc_api.py +1 -1
  252. chia/data_layer/data_layer_service.py +8 -0
  253. chia/data_layer/data_layer_util.py +49 -89
  254. chia/data_layer/data_layer_wallet.py +20 -17
  255. chia/data_layer/data_store.py +1051 -1462
  256. chia/data_layer/download_data.py +44 -115
  257. chia/{server → data_layer}/start_data_layer.py +2 -1
  258. chia/data_layer/util/benchmark.py +38 -53
  259. chia/farmer/farmer.py +3 -0
  260. chia/farmer/farmer_api.py +104 -5
  261. chia/farmer/farmer_rpc_api.py +20 -0
  262. chia/farmer/farmer_rpc_client.py +6 -2
  263. chia/farmer/farmer_service.py +8 -0
  264. chia/{server → farmer}/start_farmer.py +9 -3
  265. chia/full_node/block_store.py +20 -10
  266. chia/full_node/coin_store.py +12 -4
  267. chia/full_node/eligible_coin_spends.py +17 -72
  268. chia/full_node/full_node.py +68 -71
  269. chia/full_node/full_node_api.py +26 -32
  270. chia/full_node/full_node_rpc_api.py +44 -33
  271. chia/full_node/full_node_rpc_client.py +67 -79
  272. chia/full_node/full_node_service.py +8 -0
  273. chia/full_node/full_node_store.py +5 -3
  274. chia/full_node/mempool.py +15 -16
  275. chia/full_node/mempool_manager.py +73 -89
  276. chia/{server → full_node}/start_full_node.py +1 -1
  277. chia/full_node/subscriptions.py +2 -2
  278. chia/full_node/weight_proof.py +14 -15
  279. chia/harvester/harvester.py +8 -1
  280. chia/harvester/harvester_api.py +178 -44
  281. chia/harvester/harvester_service.py +8 -0
  282. chia/{server → harvester}/start_harvester.py +1 -1
  283. chia/introducer/introducer_service.py +8 -0
  284. chia/{server → introducer}/start_introducer.py +1 -1
  285. chia/plot_sync/receiver.py +6 -1
  286. chia/plot_sync/sender.py +7 -4
  287. chia/plotting/cache.py +37 -28
  288. chia/plotting/check_plots.py +83 -48
  289. chia/plotting/create_plots.py +3 -4
  290. chia/plotting/manager.py +18 -13
  291. chia/plotting/prover.py +153 -0
  292. chia/plotting/util.py +14 -6
  293. chia/pools/pool_wallet.py +6 -4
  294. chia/protocols/harvester_protocol.py +14 -0
  295. chia/protocols/outbound_message.py +1 -0
  296. chia/protocols/pool_protocol.py +1 -1
  297. chia/protocols/protocol_message_types.py +7 -0
  298. chia/protocols/shared_protocol.py +2 -0
  299. chia/protocols/solver_protocol.py +18 -0
  300. chia/rpc/rpc_server.py +1 -1
  301. chia/seeder/crawl_store.py +4 -8
  302. chia/seeder/crawler.py +2 -2
  303. chia/seeder/crawler_service.py +8 -0
  304. chia/seeder/start_crawler.py +1 -1
  305. chia/server/address_manager.py +12 -15
  306. chia/server/introducer_peers.py +1 -1
  307. chia/server/node_discovery.py +9 -10
  308. chia/server/rate_limit_numbers.py +157 -168
  309. chia/server/rate_limits.py +44 -41
  310. chia/server/resolve_peer_info.py +5 -0
  311. chia/server/server.py +17 -7
  312. chia/server/start_service.py +0 -1
  313. chia/simulator/block_tools.py +92 -58
  314. chia/simulator/full_node_simulator.py +1 -1
  315. chia/simulator/setup_services.py +52 -15
  316. chia/solver/__init__.py +0 -0
  317. chia/solver/solver.py +100 -0
  318. chia/solver/solver_api.py +59 -0
  319. chia/solver/solver_rpc_api.py +31 -0
  320. chia/solver/solver_rpc_client.py +16 -0
  321. chia/solver/solver_service.py +8 -0
  322. chia/solver/start_solver.py +102 -0
  323. {mozilla-ca → chia/ssl}/cacert.pem +0 -27
  324. chia/ssl/create_ssl.py +3 -2
  325. chia/{server → timelord}/start_timelord.py +1 -1
  326. chia/timelord/timelord.py +12 -13
  327. chia/timelord/timelord_service.py +8 -0
  328. chia/types/blockchain_format/proof_of_space.py +61 -17
  329. chia/types/coin_spend.py +0 -8
  330. chia/types/internal_mempool_item.py +3 -3
  331. chia/types/mempool_item.py +15 -8
  332. chia/types/mempool_submission_status.py +1 -1
  333. chia/util/config.py +1 -3
  334. chia/util/db_wrapper.py +7 -8
  335. chia/util/initial-config.yaml +46 -0
  336. chia/util/lru_cache.py +8 -4
  337. chia/util/network.py +9 -0
  338. chia/util/streamable.py +38 -8
  339. chia/util/virtual_project_analysis.py +1 -1
  340. chia/wallet/cat_wallet/cat_outer_puzzle.py +7 -4
  341. chia/wallet/cat_wallet/cat_wallet.py +13 -7
  342. chia/wallet/cat_wallet/r_cat_wallet.py +4 -1
  343. chia/wallet/conditions.py +1 -3
  344. chia/wallet/did_wallet/did_wallet.py +27 -332
  345. chia/wallet/nft_wallet/nft_puzzle_utils.py +1 -1
  346. chia/wallet/nft_wallet/nft_wallet.py +9 -7
  347. chia/wallet/puzzle_drivers.py +7 -8
  348. chia/{server → wallet}/start_wallet.py +1 -1
  349. chia/wallet/trade_manager.py +12 -9
  350. chia/wallet/transaction_record.py +14 -51
  351. chia/wallet/util/clvm_streamable.py +28 -41
  352. chia/wallet/util/merkle_utils.py +2 -2
  353. chia/wallet/util/tx_config.py +3 -6
  354. chia/wallet/vc_wallet/cr_cat_wallet.py +12 -6
  355. chia/wallet/vc_wallet/vc_wallet.py +13 -15
  356. chia/wallet/wallet.py +5 -3
  357. chia/wallet/wallet_node.py +25 -30
  358. chia/wallet/wallet_request_types.py +538 -101
  359. chia/wallet/wallet_rpc_api.py +398 -570
  360. chia/wallet/wallet_rpc_client.py +144 -332
  361. chia/wallet/wallet_service.py +8 -0
  362. chia/wallet/wallet_state_manager.py +53 -42
  363. chia/wallet/wallet_transaction_store.py +13 -5
  364. {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7.dist-info}/METADATA +31 -31
  365. {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7.dist-info}/RECORD +368 -240
  366. {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7.dist-info}/WHEEL +1 -1
  367. {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7.dist-info}/entry_points.txt +8 -7
  368. chia/full_node/mempool_check_conditions.py +0 -102
  369. chia/server/aliases.py +0 -35
  370. {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7.dist-info/licenses}/LICENSE +0 -0
chia/_tests/conftest.py CHANGED
@@ -50,19 +50,14 @@ from chia._tests.util.setup_nodes import (
50
50
  from chia._tests.util.spend_sim import CostLogger
51
51
  from chia._tests.util.time_out_assert import time_out_assert
52
52
  from chia.farmer.farmer_rpc_client import FarmerRpcClient
53
+ from chia.farmer.farmer_service import FarmerService
53
54
  from chia.full_node.full_node_api import FullNodeAPI
55
+ from chia.full_node.full_node_service import FullNodeService
54
56
  from chia.harvester.harvester_rpc_client import HarvesterRpcClient
57
+ from chia.harvester.harvester_service import HarvesterService
58
+ from chia.seeder.crawler_service import CrawlerService
55
59
  from chia.seeder.dns_server import DNSServer
56
- from chia.server.aliases import (
57
- CrawlerService,
58
- FarmerService,
59
- FullNodeService,
60
- HarvesterService,
61
- TimelordService,
62
- WalletService,
63
- )
64
60
  from chia.server.server import ChiaServer
65
- from chia.server.start_service import Service
66
61
  from chia.simulator.full_node_simulator import FullNodeSimulator
67
62
  from chia.simulator.setup_services import (
68
63
  setup_crawler,
@@ -70,11 +65,14 @@ from chia.simulator.setup_services import (
70
65
  setup_full_node,
71
66
  setup_introducer,
72
67
  setup_seeder,
68
+ setup_solver,
73
69
  setup_timelord,
74
70
  )
75
71
  from chia.simulator.start_simulator import SimulatorFullNodeService
76
72
  from chia.simulator.wallet_tools import WalletTool
77
- from chia.types.peer_info import PeerInfo
73
+ from chia.solver.solver_service import SolverService
74
+ from chia.timelord.timelord_service import TimelordService
75
+ from chia.types.peer_info import PeerInfo, UnresolvedPeerInfo
78
76
  from chia.util.config import create_default_chia_config, lock_and_load_config
79
77
  from chia.util.db_wrapper import generate_in_memory_db_uri
80
78
  from chia.util.keychain import Keychain
@@ -82,6 +80,7 @@ from chia.util.task_timing import main as task_instrumentation_main
82
80
  from chia.util.task_timing import start_task_instrumentation, stop_task_instrumentation
83
81
  from chia.wallet.wallet_node import WalletNode
84
82
  from chia.wallet.wallet_rpc_client import WalletRpcClient
83
+ from chia.wallet.wallet_service import WalletService
85
84
 
86
85
  # TODO: review how this is now after other imports and before some stdlib imports... :[
87
86
  # Set spawn after stdlib imports, but before other imports
@@ -93,7 +92,7 @@ from pathlib import Path
93
92
  from chia_rs.sized_ints import uint128
94
93
 
95
94
  from chia._tests.environments.wallet import WalletEnvironment, WalletState, WalletTestFramework
96
- from chia._tests.util.setup_nodes import setup_farmer_multi_harvester
95
+ from chia._tests.util.setup_nodes import setup_farmer_solver_multi_harvester
97
96
  from chia.full_node.full_node_rpc_client import FullNodeRpcClient
98
97
  from chia.simulator.block_tools import BlockTools, create_block_tools_async, test_constants
99
98
  from chia.simulator.keyring import TempKeyring
@@ -233,8 +232,8 @@ def blockchain_constants(consensus_mode: ConsensusMode) -> ConsensusConstants:
233
232
  @pytest.fixture(scope="session", name="bt")
234
233
  async def block_tools_fixture(get_keychain, blockchain_constants, anyio_backend) -> BlockTools:
235
234
  # Note that this causes a lot of CPU and disk traffic - disk, DB, ports, process creation ...
236
- _shared_block_tools = await create_block_tools_async(constants=blockchain_constants, keychain=get_keychain)
237
- return _shared_block_tools
235
+ shared_block_tools = await create_block_tools_async(constants=blockchain_constants, keychain=get_keychain)
236
+ return shared_block_tools
238
237
 
239
238
 
240
239
  # if you have a system that has an unusual hostname for localhost and you want
@@ -790,7 +789,7 @@ async def three_nodes_two_wallets(blockchain_constants: ConsensusConstants):
790
789
  @pytest.fixture(scope="function")
791
790
  async def one_node(
792
791
  blockchain_constants: ConsensusConstants,
793
- ) -> AsyncIterator[tuple[list[Service], list[FullNodeSimulator], BlockTools]]:
792
+ ) -> AsyncIterator[tuple[list[SimulatorFullNodeService], list[WalletService], BlockTools]]:
794
793
  async with setup_simulators_and_wallets_service(1, 0, blockchain_constants) as _:
795
794
  yield _
796
795
 
@@ -867,7 +866,7 @@ async def farmer_one_harvester_simulator_wallet(
867
866
  ]
868
867
  ]:
869
868
  async with setup_simulators_and_wallets_service(1, 1, blockchain_constants) as (nodes, wallets, bt):
870
- async with setup_farmer_multi_harvester(bt, 1, tmp_path, bt.constants, start_services=True) as (
869
+ async with setup_farmer_solver_multi_harvester(bt, 1, tmp_path, bt.constants, start_services=True) as (
871
870
  harvester_services,
872
871
  farmer_service,
873
872
  _,
@@ -880,31 +879,54 @@ FarmerOneHarvester = tuple[list[HarvesterService], FarmerService, BlockTools]
880
879
 
881
880
  @pytest.fixture(scope="function")
882
881
  async def farmer_one_harvester(tmp_path: Path, get_b_tools: BlockTools) -> AsyncIterator[FarmerOneHarvester]:
883
- async with setup_farmer_multi_harvester(get_b_tools, 1, tmp_path, get_b_tools.constants, start_services=True) as _:
882
+ async with setup_farmer_solver_multi_harvester(
883
+ get_b_tools, 1, tmp_path, get_b_tools.constants, start_services=True
884
+ ) as _:
884
885
  yield _
885
886
 
886
887
 
888
+ FarmerOneHarvesterSolver = tuple[list[HarvesterService], FarmerService, SolverService, BlockTools]
889
+
890
+
891
+ @pytest.fixture(scope="function")
892
+ async def farmer_one_harvester_solver(
893
+ tmp_path: Path, get_b_tools: BlockTools
894
+ ) -> AsyncIterator[FarmerOneHarvesterSolver]:
895
+ async with setup_solver(tmp_path / "solver", get_b_tools, get_b_tools.constants) as solver_service:
896
+ solver_peer = UnresolvedPeerInfo(get_b_tools.config["self_hostname"], solver_service._server.get_port())
897
+ async with setup_farmer_solver_multi_harvester(
898
+ get_b_tools, 1, tmp_path, get_b_tools.constants, start_services=True, solver_peer=solver_peer
899
+ ) as (harvester_services, farmer_service, bt):
900
+ yield harvester_services, farmer_service, solver_service, bt
901
+
902
+
887
903
  @pytest.fixture(scope="function")
888
904
  async def farmer_one_harvester_not_started(
889
905
  tmp_path: Path, get_b_tools: BlockTools
890
- ) -> AsyncIterator[tuple[list[Service], Service]]:
891
- async with setup_farmer_multi_harvester(get_b_tools, 1, tmp_path, get_b_tools.constants, start_services=False) as _:
906
+ ) -> AsyncIterator[tuple[list[HarvesterService], FarmerService, BlockTools]]:
907
+ async with setup_farmer_solver_multi_harvester(
908
+ get_b_tools, 1, tmp_path, get_b_tools.constants, start_services=False
909
+ ) as _:
892
910
  yield _
893
911
 
894
912
 
895
913
  @pytest.fixture(scope="function")
896
914
  async def farmer_two_harvester_not_started(
897
915
  tmp_path: Path, get_b_tools: BlockTools
898
- ) -> AsyncIterator[tuple[list[Service], Service]]:
899
- async with setup_farmer_multi_harvester(get_b_tools, 2, tmp_path, get_b_tools.constants, start_services=False) as _:
916
+ ) -> AsyncIterator[tuple[list[HarvesterService], FarmerService, BlockTools]]:
917
+ async with setup_farmer_solver_multi_harvester(
918
+ get_b_tools, 2, tmp_path, get_b_tools.constants, start_services=False
919
+ ) as _:
900
920
  yield _
901
921
 
902
922
 
903
923
  @pytest.fixture(scope="function")
904
924
  async def farmer_three_harvester_not_started(
905
925
  tmp_path: Path, get_b_tools: BlockTools
906
- ) -> AsyncIterator[tuple[list[Service], Service]]:
907
- async with setup_farmer_multi_harvester(get_b_tools, 3, tmp_path, get_b_tools.constants, start_services=False) as _:
926
+ ) -> AsyncIterator[tuple[list[HarvesterService], FarmerService, BlockTools]]:
927
+ async with setup_farmer_solver_multi_harvester(
928
+ get_b_tools, 3, tmp_path, get_b_tools.constants, start_services=False
929
+ ) as _:
908
930
  yield _
909
931
 
910
932
 
@@ -1285,10 +1307,13 @@ async def farmer_harvester_2_simulators_zero_bits_plot_filter(
1285
1307
  )
1286
1308
  for index in range(len(bts))
1287
1309
  ]
1288
-
1289
- [harvester_service], farmer_service, _ = await async_exit_stack.enter_async_context(
1290
- setup_farmer_multi_harvester(bt, 1, tmp_path, bt.constants, start_services=True)
1291
- )
1310
+ async with setup_solver(tmp_path / "solver", bt, bt.constants) as solver_service:
1311
+ solver_peer = UnresolvedPeerInfo(bt.config["self_hostname"], solver_service._server.get_port())
1312
+ [harvester_service], farmer_service, _ = await async_exit_stack.enter_async_context(
1313
+ setup_farmer_solver_multi_harvester(
1314
+ bt, 1, tmp_path, bt.constants, start_services=True, solver_peer=solver_peer
1315
+ )
1316
+ )
1292
1317
 
1293
1318
  yield farmer_service, harvester_service, simulators[0], simulators[1], bt
1294
1319
 
@@ -1,12 +1,13 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import Any, Optional
3
+ from typing import Any
4
4
 
5
5
  import pytest
6
6
  from chia_rs.sized_bytes import bytes32
7
7
  from chia_rs.sized_ints import uint32
8
8
 
9
9
  from chia.cmds.wallet_funcs import print_offer_summary
10
+ from chia.wallet.wallet_request_types import CATAssetIDToName, CATAssetIDToNameResponse
10
11
 
11
12
  TEST_DUCKSAUCE_ASSET_ID = "1000000000000000000000000000000000000000000000000000000000000001"
12
13
  TEST_CRUNCHBERRIES_ASSET_ID = "1000000000000000000000000000000000000000000000000000000000000002"
@@ -19,8 +20,8 @@ TEST_ASSET_ID_NAME_MAPPING: dict[bytes32, tuple[uint32, str]] = {
19
20
  }
20
21
 
21
22
 
22
- async def cat_name_resolver(asset_id: bytes32) -> Optional[tuple[Optional[uint32], str]]:
23
- return TEST_ASSET_ID_NAME_MAPPING.get(asset_id)
23
+ async def cat_name_resolver(request: CATAssetIDToName) -> CATAssetIDToNameResponse:
24
+ return CATAssetIDToNameResponse(*TEST_ASSET_ID_NAME_MAPPING.get(request.asset_id, (None, None)))
24
25
 
25
26
 
26
27
  @pytest.mark.anyio
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import pytest
3
4
  from chia_rs import PlotSize
4
5
  from chia_rs.sized_ints import uint8, uint16, uint32, uint64, uint128
5
6
  from pytest import raises
@@ -7,7 +8,6 @@ from pytest import raises
7
8
  from chia.consensus.default_constants import DEFAULT_CONSTANTS
8
9
  from chia.consensus.pos_quality import _expected_plot_size
9
10
  from chia.consensus.pot_iterations import (
10
- PHASE_OUT_PERIOD,
11
11
  calculate_ip_iters,
12
12
  calculate_iterations_quality,
13
13
  calculate_phase_out,
@@ -68,7 +68,7 @@ class TestPotIterations:
68
68
  ip_iters = calculate_ip_iters(test_constants, ssi, uint8(13), required_iters)
69
69
  assert ip_iters == sp_iters + test_constants.NUM_SP_INTERVALS_EXTRA * sp_interval_iters + required_iters
70
70
 
71
- required_iters = uint64(int(ssi * 4 / 300))
71
+ required_iters = uint64(ssi * 4 / 300)
72
72
  ip_iters = calculate_ip_iters(test_constants, ssi, uint8(13), required_iters)
73
73
  assert ip_iters == sp_iters + test_constants.NUM_SP_INTERVALS_EXTRA * sp_interval_iters + required_iters
74
74
  assert sp_iters < ip_iters
@@ -84,65 +84,96 @@ class TestPotIterations:
84
84
  assert ip_iters == (sp_iters + test_constants.NUM_SP_INTERVALS_EXTRA * sp_interval_iters + required_iters) % ssi
85
85
  assert sp_iters > ip_iters
86
86
 
87
- def test_win_percentage(self):
87
+ @pytest.mark.parametrize(
88
+ "height",
89
+ [
90
+ uint32(0),
91
+ test_constants.HARD_FORK2_HEIGHT - 1,
92
+ test_constants.HARD_FORK2_HEIGHT,
93
+ test_constants.HARD_FORK2_HEIGHT + test_constants.PLOT_V1_PHASE_OUT,
94
+ test_constants.HARD_FORK2_HEIGHT + test_constants.PLOT_V1_PHASE_OUT + 1,
95
+ ],
96
+ )
97
+ def test_win_percentage(self, height: uint32):
88
98
  """
89
99
  Tests that the percentage of blocks won is proportional to the space of each farmer,
90
100
  with the assumption that all farmers have access to the same VDF speed.
91
101
  """
92
102
  farmer_ks = {
93
- uint8(32): 100,
94
- uint8(33): 100,
95
- uint8(34): 100,
96
- uint8(35): 100,
97
- uint8(36): 100,
103
+ PlotSize.make_v1(32): 100,
104
+ PlotSize.make_v1(33): 100,
105
+ PlotSize.make_v1(34): 100,
106
+ PlotSize.make_v1(35): 100,
107
+ PlotSize.make_v1(36): 100,
108
+ PlotSize.make_v2(28): 200,
109
+ PlotSize.make_v2(30): 200,
110
+ PlotSize.make_v2(32): 200,
98
111
  }
99
- farmer_space = {k: _expected_plot_size(uint8(k)) * count for k, count in farmer_ks.items()}
100
- total_space = sum(farmer_space.values())
101
- percentage_space = {k: float(sp / total_space) for k, sp in farmer_space.items()}
112
+ farmer_space = {k: _expected_plot_size(k) * count for k, count in farmer_ks.items()}
102
113
  wins = {k: 0 for k in farmer_ks.keys()}
114
+
115
+ constants = test_constants.replace(DIFFICULTY_CONSTANT_FACTOR=uint128(2**25))
103
116
  total_slots = 50
104
117
  num_sps = 16
105
- sp_interval_iters = uint64(100000000 // 32)
118
+ sub_slot_iters = uint64(100000000)
119
+ sp_interval_iters = calculate_sp_interval_iters(constants, sub_slot_iters)
106
120
  difficulty = uint64(500000000000)
107
- constants = test_constants.replace(DIFFICULTY_CONSTANT_FACTOR=uint128(2**25))
108
121
  for slot_index in range(total_slots):
109
122
  total_wins_in_slot = 0
110
123
  for sp_index in range(num_sps):
111
124
  sp_hash = std_hash(slot_index.to_bytes(4, "big") + sp_index.to_bytes(4, "big"))
112
125
  for k, count in farmer_ks.items():
113
126
  for farmer_index in range(count):
114
- quality = std_hash(slot_index.to_bytes(4, "big") + k.to_bytes(1, "big") + bytes(farmer_index))
115
- # TODO: todo_v2_plots
127
+ plot_k_val = k.size_v1 if k.size_v2 is None else k.size_v2
128
+ assert plot_k_val is not None
129
+ quality = std_hash(
130
+ slot_index.to_bytes(4, "big") + plot_k_val.to_bytes(1, "big") + bytes(farmer_index)
131
+ )
116
132
  required_iters = calculate_iterations_quality(
117
- constants, quality, PlotSize.make_v1(k), difficulty, sp_hash, uint64(100000000), uint32(0)
133
+ constants, quality, k, difficulty, sp_hash, sub_slot_iters, height
118
134
  )
119
135
  if required_iters < sp_interval_iters:
120
136
  wins[k] += 1
121
137
  total_wins_in_slot += 1
122
138
 
139
+ if height < test_constants.HARD_FORK2_HEIGHT + test_constants.PLOT_V1_PHASE_OUT:
140
+ total_space = sum(farmer_space.values())
141
+ percentage_space = {k: float(sp / total_space) for k, sp in farmer_space.items()}
142
+ else:
143
+ # after the phase-out, v1 plots don't count
144
+ # all wins are by v2 plots
145
+ total_space = sum(0 if k.size_v2 is None else sp for k, sp in farmer_space.items())
146
+ percentage_space = {
147
+ k: 0.0 if k.size_v2 is None else float(sp / total_space) for k, sp in farmer_space.items()
148
+ }
149
+
123
150
  win_percentage = {k: wins[k] / sum(wins.values()) for k in farmer_ks.keys()}
124
151
  for k in farmer_ks.keys():
125
152
  # Win rate is proportional to percentage of space
126
153
  assert abs(win_percentage[k] - percentage_space[k]) < 0.01
127
154
 
128
- def test_calculate_phase_out(self):
155
+ @pytest.mark.parametrize("sp_interval", [uint64(6250000000), uint64(1), uint64(2), uint64(10), uint64(10000000000)])
156
+ def test_calculate_phase_out(self, sp_interval: uint64):
129
157
  constants = test_constants
130
- sub_slot_iters = uint64(100000000000)
131
- sp_interval = calculate_sp_interval_iters(constants, sub_slot_iters)
158
+ sub_slot_iters = uint64(sp_interval * constants.NUM_SPS_SUB_SLOT)
132
159
  # Before or at HARD_FORK2_HEIGHT, should return 0
133
- assert calculate_phase_out(constants, sub_slot_iters, constants.HARD_FORK2_HEIGHT - 1) == 0
160
+ assert calculate_phase_out(constants, sub_slot_iters, uint32(constants.HARD_FORK2_HEIGHT - 1)) == 0
134
161
  assert calculate_phase_out(constants, sub_slot_iters, constants.HARD_FORK2_HEIGHT) == 0
135
162
  # after HARD_FORK2_HEIGHT, should return value = delta/phase_out_period * sp_interval
136
163
  assert (
137
- calculate_phase_out(constants, sub_slot_iters, constants.HARD_FORK2_HEIGHT + 1)
138
- == sp_interval // PHASE_OUT_PERIOD
164
+ calculate_phase_out(constants, sub_slot_iters, uint32(constants.HARD_FORK2_HEIGHT + 1))
165
+ == sp_interval // constants.PLOT_V1_PHASE_OUT
139
166
  )
140
167
  assert (
141
- calculate_phase_out(constants, sub_slot_iters, constants.HARD_FORK2_HEIGHT + PHASE_OUT_PERIOD // 2)
168
+ calculate_phase_out(
169
+ constants, sub_slot_iters, uint32(constants.HARD_FORK2_HEIGHT + constants.PLOT_V1_PHASE_OUT // 2)
170
+ )
142
171
  == sp_interval // 2
143
172
  )
144
173
  assert (
145
- calculate_phase_out(constants, sub_slot_iters, constants.HARD_FORK2_HEIGHT + PHASE_OUT_PERIOD)
174
+ calculate_phase_out(
175
+ constants, sub_slot_iters, uint32(constants.HARD_FORK2_HEIGHT + constants.PLOT_V1_PHASE_OUT)
176
+ )
146
177
  == sp_interval
147
178
  )
148
179
 
@@ -150,3 +181,19 @@ class TestPotIterations:
150
181
  max_uint32_height = uint32(0xFFFFFFFF)
151
182
  result_max_height = calculate_phase_out(constants, sub_slot_iters, max_uint32_height)
152
183
  assert result_max_height == sp_interval # Should cap at sp_interval
184
+
185
+
186
+ def test_expected_plot_size_v1() -> None:
187
+ last_size = 2_400_000
188
+ for k in range(18, 50):
189
+ plot_size = _expected_plot_size(PlotSize.make_v1(k))
190
+ assert plot_size > last_size * 2
191
+ last_size = plot_size
192
+
193
+
194
+ def test_expected_plot_size_v2() -> None:
195
+ last_size = 100_000
196
+ for k in range(16, 32, 2):
197
+ plot_size = _expected_plot_size(PlotSize.make_v2(k))
198
+ assert plot_size > last_size * 2
199
+ last_size = plot_size
@@ -5,15 +5,17 @@ from dataclasses import dataclass
5
5
  from typing import Optional
6
6
 
7
7
  import pytest
8
- from chia_rs import G1Element, PlotSize, ProofOfSpace
8
+ from chia_rs import G1Element, PlotSize
9
9
  from chia_rs.sized_bytes import bytes32, bytes48
10
10
  from chia_rs.sized_ints import uint8, uint32
11
11
 
12
12
  from chia._tests.util.misc import Marks, datacases
13
13
  from chia.consensus.default_constants import DEFAULT_CONSTANTS
14
14
  from chia.types.blockchain_format.proof_of_space import (
15
- calculate_plot_difficulty,
16
15
  calculate_prefix_bits,
16
+ calculate_required_plot_strength,
17
+ check_plot_size,
18
+ make_pos,
17
19
  passes_plot_filter,
18
20
  verify_and_get_quality_string,
19
21
  )
@@ -23,7 +25,7 @@ from chia.types.blockchain_format.proof_of_space import (
23
25
  class ProofOfSpaceCase:
24
26
  id: str
25
27
  pos_challenge: bytes32
26
- plot_size: uint8
28
+ plot_size: PlotSize
27
29
  plot_public_key: G1Element
28
30
  pool_public_key: Optional[G1Element] = None
29
31
  pool_contract_puzzle_hash: Optional[bytes32] = None
@@ -45,14 +47,14 @@ def b32(key: str) -> bytes32:
45
47
  ProofOfSpaceCase(
46
48
  id="Neither pool public key nor pool contract puzzle hash",
47
49
  pos_challenge=bytes32(b"1" * 32),
48
- plot_size=uint8(0),
50
+ plot_size=PlotSize.make_v1(0),
49
51
  plot_public_key=G1Element(),
50
52
  expected_error="Expected pool public key or pool contract puzzle hash but got neither",
51
53
  ),
52
54
  ProofOfSpaceCase(
53
55
  id="Both pool public key and pool contract puzzle hash",
54
56
  pos_challenge=bytes32(b"1" * 32),
55
- plot_size=uint8(0),
57
+ plot_size=PlotSize.make_v1(0),
56
58
  plot_public_key=G1Element(),
57
59
  pool_public_key=G1Element(),
58
60
  pool_contract_puzzle_hash=bytes32(b"1" * 32),
@@ -61,7 +63,7 @@ def b32(key: str) -> bytes32:
61
63
  ProofOfSpaceCase(
62
64
  id="Lower than minimum plot size",
63
65
  pos_challenge=bytes32(b"1" * 32),
64
- plot_size=uint8(31),
66
+ plot_size=PlotSize.make_v1(31),
65
67
  plot_public_key=G1Element(),
66
68
  pool_public_key=G1Element(),
67
69
  expected_error="Plot size is lower than the minimum",
@@ -69,7 +71,7 @@ def b32(key: str) -> bytes32:
69
71
  ProofOfSpaceCase(
70
72
  id="Higher than maximum plot size",
71
73
  pos_challenge=bytes32(b"1" * 32),
72
- plot_size=uint8(51),
74
+ plot_size=PlotSize.make_v1(51),
73
75
  plot_public_key=G1Element(),
74
76
  pool_public_key=G1Element(),
75
77
  expected_error="Plot size is higher than the maximum",
@@ -77,7 +79,7 @@ def b32(key: str) -> bytes32:
77
79
  ProofOfSpaceCase(
78
80
  id="Different challenge",
79
81
  pos_challenge=bytes32(b"1" * 32),
80
- plot_size=uint8(42),
82
+ plot_size=PlotSize.make_v1(42),
81
83
  pool_public_key=G1Element(),
82
84
  plot_public_key=G1Element(),
83
85
  expected_error="Calculated pos challenge doesn't match the provided one",
@@ -85,7 +87,7 @@ def b32(key: str) -> bytes32:
85
87
  ProofOfSpaceCase(
86
88
  id="Not passing the plot filter with size 9",
87
89
  pos_challenge=b32("08b23cc2844dfb92d2eedaa705a1ce665d571ee753bd81cbb67b92caa6d34722"),
88
- plot_size=uint8(42),
90
+ plot_size=PlotSize.make_v1(42),
89
91
  pool_public_key=g1(
90
92
  "b6449c2c68df97c19e884427e42ee7350982d4020571ead08732615ff39bd216bfd630b6460784982bec98b49fea79d0"
91
93
  ),
@@ -98,7 +100,7 @@ def b32(key: str) -> bytes32:
98
100
  ProofOfSpaceCase(
99
101
  id="Passing the plot filter with size 8",
100
102
  pos_challenge=b32("08b23cc2844dfb92d2eedaa705a1ce665d571ee753bd81cbb67b92caa6d34722"),
101
- plot_size=uint8(42),
103
+ plot_size=PlotSize.make_v1(42),
102
104
  pool_public_key=g1(
103
105
  "b6449c2c68df97c19e884427e42ee7350982d4020571ead08732615ff39bd216bfd630b6460784982bec98b49fea79d0"
104
106
  ),
@@ -110,7 +112,7 @@ def b32(key: str) -> bytes32:
110
112
  ProofOfSpaceCase(
111
113
  id="v2 plot size 0",
112
114
  pos_challenge=bytes32(b"1" * 32),
113
- plot_size=uint8(0x80),
115
+ plot_size=PlotSize.make_v2(0),
114
116
  plot_public_key=G1Element(),
115
117
  pool_public_key=G1Element(),
116
118
  expected_error="Plot size is lower than the minimum",
@@ -118,7 +120,7 @@ def b32(key: str) -> bytes32:
118
120
  ProofOfSpaceCase(
119
121
  id="v2 plot size 34",
120
122
  pos_challenge=bytes32(b"1" * 32),
121
- plot_size=uint8(0x80 | 34),
123
+ plot_size=PlotSize.make_v2(34),
122
124
  plot_public_key=G1Element(),
123
125
  pool_public_key=G1Element(),
124
126
  expected_error="Plot size is higher than the maximum",
@@ -126,7 +128,7 @@ def b32(key: str) -> bytes32:
126
128
  ProofOfSpaceCase(
127
129
  id="Not passing the plot filter v2",
128
130
  pos_challenge=b32("3d29ea79d19b3f7e99ebf764ae53697cbe143603909873946af6ab1ece606861"),
129
- plot_size=uint8(0x80 | 32),
131
+ plot_size=PlotSize.make_v2(32),
130
132
  pool_public_key=g1(
131
133
  "b6449c2c68df97c19e884427e42ee7350982d4020571ead08732615ff39bd216bfd630b6460784982bec98b49fea79d0"
132
134
  ),
@@ -137,7 +139,7 @@ def b32(key: str) -> bytes32:
137
139
  ),
138
140
  )
139
141
  def test_verify_and_get_quality_string(caplog: pytest.LogCaptureFixture, case: ProofOfSpaceCase) -> None:
140
- pos = ProofOfSpace(
142
+ pos = make_pos(
141
143
  challenge=case.pos_challenge,
142
144
  pool_public_key=case.pool_public_key,
143
145
  pool_contract_puzzle_hash=case.pool_contract_puzzle_hash,
@@ -159,7 +161,7 @@ def test_verify_and_get_quality_string(caplog: pytest.LogCaptureFixture, case: P
159
161
  @datacases(
160
162
  ProofOfSpaceCase(
161
163
  id="v2 plot are not implemented",
162
- plot_size=uint8(0x80 | 30),
164
+ plot_size=PlotSize.make_v2(30),
163
165
  pos_challenge=b32("47deb938e145d25d7b3b3c85ca9e3972b76c01aeeb78a02fe5d3b040d282317e"),
164
166
  plot_public_key=g1(
165
167
  "afa3aaf09c03885154be49216ee7fb2e4581b9c4a4d7e9cc402e27280bf0cfdbdf1b9ba674e301fd1d1450234b3b1868"
@@ -171,7 +173,7 @@ def test_verify_and_get_quality_string(caplog: pytest.LogCaptureFixture, case: P
171
173
  ),
172
174
  )
173
175
  def test_verify_and_get_quality_string_v2(caplog: pytest.LogCaptureFixture, case: ProofOfSpaceCase) -> None:
174
- pos = ProofOfSpace(
176
+ pos = make_pos(
175
177
  challenge=case.pos_challenge,
176
178
  pool_public_key=case.pool_public_key,
177
179
  pool_contract_puzzle_hash=case.pool_contract_puzzle_hash,
@@ -199,26 +201,54 @@ def test_verify_and_get_quality_string_v2(caplog: pytest.LogCaptureFixture, case
199
201
 
200
202
 
201
203
  @pytest.mark.parametrize(
202
- "height, difficulty",
204
+ "height, strength",
203
205
  [
204
206
  (0, 2),
205
207
  (DEFAULT_CONSTANTS.HARD_FORK_HEIGHT, 2),
206
208
  (DEFAULT_CONSTANTS.HARD_FORK2_HEIGHT, 2),
207
- (DEFAULT_CONSTANTS.PLOT_DIFFICULTY_4_HEIGHT - 1, 2),
208
- (DEFAULT_CONSTANTS.PLOT_DIFFICULTY_4_HEIGHT, 4),
209
- (DEFAULT_CONSTANTS.PLOT_DIFFICULTY_5_HEIGHT - 1, 4),
210
- (DEFAULT_CONSTANTS.PLOT_DIFFICULTY_5_HEIGHT, 5),
211
- (DEFAULT_CONSTANTS.PLOT_DIFFICULTY_6_HEIGHT - 1, 5),
212
- (DEFAULT_CONSTANTS.PLOT_DIFFICULTY_6_HEIGHT, 6),
213
- (DEFAULT_CONSTANTS.PLOT_DIFFICULTY_7_HEIGHT - 1, 6),
214
- (DEFAULT_CONSTANTS.PLOT_DIFFICULTY_7_HEIGHT, 7),
215
- (DEFAULT_CONSTANTS.PLOT_DIFFICULTY_8_HEIGHT - 1, 7),
216
- (DEFAULT_CONSTANTS.PLOT_DIFFICULTY_8_HEIGHT, 8),
217
- (DEFAULT_CONSTANTS.PLOT_DIFFICULTY_8_HEIGHT + 1000000, 8),
209
+ (DEFAULT_CONSTANTS.PLOT_STRENGTH_4_HEIGHT - 1, 2),
210
+ (DEFAULT_CONSTANTS.PLOT_STRENGTH_4_HEIGHT, 4),
211
+ (DEFAULT_CONSTANTS.PLOT_STRENGTH_5_HEIGHT - 1, 4),
212
+ (DEFAULT_CONSTANTS.PLOT_STRENGTH_5_HEIGHT, 5),
213
+ (DEFAULT_CONSTANTS.PLOT_STRENGTH_6_HEIGHT - 1, 5),
214
+ (DEFAULT_CONSTANTS.PLOT_STRENGTH_6_HEIGHT, 6),
215
+ (DEFAULT_CONSTANTS.PLOT_STRENGTH_7_HEIGHT - 1, 6),
216
+ (DEFAULT_CONSTANTS.PLOT_STRENGTH_7_HEIGHT, 7),
217
+ (DEFAULT_CONSTANTS.PLOT_STRENGTH_8_HEIGHT - 1, 7),
218
+ (DEFAULT_CONSTANTS.PLOT_STRENGTH_8_HEIGHT, 8),
219
+ (DEFAULT_CONSTANTS.PLOT_STRENGTH_8_HEIGHT + 1000000, 8),
218
220
  ],
219
221
  )
220
- def test_calculate_plot_difficulty(height: uint32, difficulty: uint8) -> None:
221
- assert calculate_plot_difficulty(DEFAULT_CONSTANTS, height) == difficulty
222
+ def test_calculate_plot_strength(height: uint32, strength: uint8) -> None:
223
+ assert calculate_required_plot_strength(DEFAULT_CONSTANTS, height) == strength
224
+
225
+
226
+ @pytest.mark.parametrize(
227
+ "size, valid",
228
+ [
229
+ (PlotSize.make_v1(31), False), # too small
230
+ (PlotSize.make_v1(32), True),
231
+ (PlotSize.make_v1(33), True),
232
+ (PlotSize.make_v1(34), True),
233
+ (PlotSize.make_v1(35), True),
234
+ (PlotSize.make_v1(36), True),
235
+ (PlotSize.make_v1(37), True),
236
+ (PlotSize.make_v1(49), True),
237
+ (PlotSize.make_v1(50), True),
238
+ (PlotSize.make_v1(51), False), # too large
239
+ (PlotSize.make_v2(26), False), # too small
240
+ (PlotSize.make_v2(27), False), # too small (and odd)
241
+ (PlotSize.make_v2(28), True),
242
+ (PlotSize.make_v2(29), False), # odd
243
+ (PlotSize.make_v2(30), True),
244
+ (PlotSize.make_v2(31), False), # odd
245
+ (PlotSize.make_v2(32), True),
246
+ (PlotSize.make_v2(33), False), # too large (and odd)
247
+ (PlotSize.make_v2(34), False), # too large
248
+ ],
249
+ )
250
+ def test_check_plot_size(size: PlotSize, valid: bool) -> None:
251
+ assert check_plot_size(DEFAULT_CONSTANTS, size) == valid
222
252
 
223
253
 
224
254
  class TestProofOfSpace:
@@ -28,10 +28,7 @@ class TestStructStream(unittest.TestCase):
28
28
 
29
29
 
30
30
  def rand_hash(rng: random.Random) -> bytes32:
31
- ret = bytearray(32)
32
- for i in range(32):
33
- ret[i] = rng.getrandbits(8)
34
- return bytes32(ret)
31
+ return bytes32.random(r=rng)
35
32
 
36
33
 
37
34
  def create_spends(num: int) -> tuple[list[CoinSpend], list[Coin]]:
@@ -61,8 +61,13 @@ def store_id_fixture() -> bytes32:
61
61
 
62
62
 
63
63
  @pytest.fixture(name="raw_data_store", scope="function")
64
- async def raw_data_store_fixture(database_uri: str) -> AsyncIterable[DataStore]:
65
- async with DataStore.managed(database=database_uri, uri=True) as store:
64
+ async def raw_data_store_fixture(database_uri: str, tmp_path: pathlib.Path) -> AsyncIterable[DataStore]:
65
+ async with DataStore.managed(
66
+ database=database_uri,
67
+ uri=True,
68
+ merkle_blobs_path=tmp_path.joinpath("merkle-blobs"),
69
+ key_value_blobs_path=tmp_path.joinpath("key-value-blobs"),
70
+ ) as store:
66
71
  yield store
67
72
 
68
73
 
File without changes