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/full_node/mempool.py CHANGED
@@ -11,7 +11,6 @@ from typing import Optional
11
11
 
12
12
  from chia_rs import (
13
13
  DONT_VALIDATE_SIGNATURE,
14
- MEMPOOL_MODE,
15
14
  AugSchemeMPL,
16
15
  BlockBuilder,
17
16
  Coin,
@@ -67,7 +66,7 @@ MEMPOOL_ITEM_FEE_LIMIT = 2**50
67
66
 
68
67
  @dataclass
69
68
  class MempoolRemoveInfo:
70
- items: list[InternalMempoolItem]
69
+ items: dict[bytes32, InternalMempoolItem]
71
70
  reason: MempoolRemoveReason
72
71
 
73
72
 
@@ -158,7 +157,7 @@ class Mempool:
158
157
  item = self._items[name]
159
158
 
160
159
  return MempoolItem(
161
- item.spend_bundle,
160
+ item.aggregated_signature,
162
161
  uint64(fee),
163
162
  item.conds,
164
163
  name,
@@ -340,7 +339,7 @@ class Mempool:
340
339
  Removes an item from the mempool.
341
340
  """
342
341
  if items == []:
343
- return MempoolRemoveInfo([], reason)
342
+ return MempoolRemoveInfo({}, reason)
344
343
 
345
344
  removed_items: list[MempoolItemInfo] = []
346
345
  if reason != MempoolRemoveReason.BLOCK_INCLUSION:
@@ -356,7 +355,7 @@ class Mempool:
356
355
  item = MempoolItemInfo(int(row[1]), int(row[2]), internal_item.height_added_to_mempool)
357
356
  removed_items.append(item)
358
357
 
359
- removed_internal_items = [self._items.pop(name) for name in items]
358
+ removed_internal_items = {name: self._items.pop(name) for name in items}
360
359
 
361
360
  for batch in to_batches(items, SQLITE_MAX_VARIABLE_NUMBER):
362
361
  args = ",".join(["?"] * len(batch.entries))
@@ -481,7 +480,7 @@ class Mempool:
481
480
  conn.executemany("INSERT OR IGNORE INTO spends VALUES(?, ?)", all_coin_spends)
482
481
 
483
482
  self._items[item_name] = InternalMempoolItem(
484
- item.spend_bundle, item.conds, item.height_added_to_mempool, item.bundle_coin_spends
483
+ item.aggregated_signature, item.conds, item.height_added_to_mempool, item.bundle_coin_spends
485
484
  )
486
485
  self._total_cost += item.cost
487
486
  self._total_fee += item.fee
@@ -535,7 +534,7 @@ class Mempool:
535
534
  f"spends: {len(removals)} additions: {len(additions)}",
536
535
  )
537
536
 
538
- flags = get_flags_for_height_and_constants(height, constants) | MEMPOOL_MODE | DONT_VALIDATE_SIGNATURE
537
+ flags = get_flags_for_height_and_constants(height, constants) | DONT_VALIDATE_SIGNATURE
539
538
 
540
539
  err, conds = run_block_generator2(
541
540
  block_program,
@@ -611,9 +610,9 @@ class Mempool:
611
610
  # might fit, but we also want to avoid spending too much
612
611
  # time on potentially expensive ones, hence this shortcut.
613
612
  if any(
614
- sd.eligible_for_dedup or sd.eligible_for_fast_forward for sd in item.bundle_coin_spends.values()
613
+ sd.eligible_for_dedup or sd.supports_fast_forward for sd in item.bundle_coin_spends.values()
615
614
  ):
616
- log.info(f"Skipping transaction with dedup or FF spends {item.spend_bundle.name()}")
615
+ log.info(f"Skipping transaction with dedup or FF spends {name}")
617
616
  continue
618
617
 
619
618
  unique_coin_spends = []
@@ -627,7 +626,7 @@ class Mempool:
627
626
  mempool_item=item, height=height, constants=constants
628
627
  )
629
628
  unique_coin_spends, cost_saving, unique_additions = dedup_coin_spends.get_deduplication_info(
630
- bundle_coin_spends=bundle_coin_spends, max_cost=cost
629
+ bundle_coin_spends=bundle_coin_spends
631
630
  )
632
631
  item_cost = cost - cost_saving
633
632
  log.info(
@@ -653,7 +652,7 @@ class Mempool:
653
652
  break
654
653
  coin_spends.extend(unique_coin_spends)
655
654
  additions.extend(unique_additions)
656
- sigs.append(item.spend_bundle.aggregated_signature)
655
+ sigs.append(item.aggregated_signature)
657
656
  cost_sum = new_cost_sum
658
657
  fee_sum = new_fee_sum
659
658
  processed_spend_bundles += 1
@@ -726,7 +725,7 @@ class Mempool:
726
725
  mempool_item=item, height=height, constants=constants
727
726
  )
728
727
  unique_coin_spends, cost_saving, unique_additions = dedup_coin_spends.get_deduplication_info(
729
- bundle_coin_spends=bundle_coin_spends, max_cost=cost
728
+ bundle_coin_spends=bundle_coin_spends
730
729
  )
731
730
  new_fee_sum = fee_sum + fee
732
731
  if new_fee_sum > DEFAULT_CONSTANTS.MAX_COIN_AMOUNT:
@@ -750,6 +749,7 @@ class Mempool:
750
749
  f"cost: {batch_cost} total cost: {block_cost}"
751
750
  )
752
751
  else:
752
+ log.info(f"Skipping transaction batch cumulative cost: {block_cost} batch cost: {batch_cost}")
753
753
  skipped_items += 1
754
754
 
755
755
  batch_cost = 0
@@ -760,7 +760,7 @@ class Mempool:
760
760
  break
761
761
 
762
762
  batch_cost += cost - cost_saving
763
- batch_transactions.append(SpendBundle(unique_coin_spends, item.spend_bundle.aggregated_signature))
763
+ batch_transactions.append(SpendBundle(unique_coin_spends, item.aggregated_signature))
764
764
  batch_spends += len(unique_coin_spends)
765
765
  batch_additions.extend(unique_additions)
766
766
  fee_sum = new_fee_sum
@@ -775,12 +775,12 @@ class Mempool:
775
775
 
776
776
  if len(batch_transactions) > 0:
777
777
  added, _ = builder.add_spend_bundles(batch_transactions, uint64(batch_cost), constants)
778
+ log.info(f"trying to add residual batch: {len(batch_transactions)} batch cost: {batch_cost} added: {added}")
778
779
 
779
780
  if added:
780
781
  added_spends += batch_spends
781
782
  additions.extend(batch_additions)
782
783
  removals.extend([cs.coin for sb in batch_transactions for cs in sb.coin_spends])
783
- block_cost = builder.cost()
784
784
  log.info(
785
785
  f"adding TX batch, additions: {len(batch_additions)} removals: {batch_spends} "
786
786
  f"cost: {batch_cost} total cost: {block_cost}"
@@ -797,7 +797,6 @@ class Mempool:
797
797
  f"create_block_generator2() took {duration:0.4f} seconds. "
798
798
  f"block cost: {cost} spends: {added_spends} additions: {len(additions)}",
799
799
  )
800
- assert block_cost == cost
801
800
 
802
801
  return NewBlockGenerator(
803
802
  SerializedProgram.from_bytes(block_program),
@@ -806,5 +805,5 @@ class Mempool:
806
805
  signature,
807
806
  additions,
808
807
  removals,
809
- uint64(block_cost),
808
+ uint64(cost),
810
809
  )
@@ -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
- items: list[NewPeakItem]
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.eligible_for_fast_forward:
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.eligible_for_fast_forward and not coin_bcs.eligible_for_dedup:
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.eligible_for_fast_forward and not conflict_bcs.eligible_for_fast_forward:
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,30 +449,35 @@ 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
- self.peak.height,
459
+ flags | MEMPOOL_MODE,
466
460
  )
467
- # validate_clvm_and_signature raises a TypeError with an error code
468
- except Exception as e:
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) > 0:
471
- error = Err(e.args[0])
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
475
469
  finally:
476
470
  self._worker_queue_size -= 1
477
471
 
472
+ if sbc.num_atoms > sbc.cost * 60_000_000 / self.constants.MAX_BLOCK_COST_CLVM:
473
+ raise ValidationError(Err.INVALID_SPEND_BUNDLE, "too many atoms")
474
+
475
+ if sbc.num_pairs > sbc.cost * 60_000_000 / self.constants.MAX_BLOCK_COST_CLVM:
476
+ raise ValidationError(Err.INVALID_SPEND_BUNDLE, "too many pairs")
477
+
478
478
  if bls_cache is not None:
479
479
  bls_cache.update(new_cache_entries)
480
480
 
481
- ret = NPCResult(None, sbc)
482
-
483
481
  if spend_bundle_id is None:
484
482
  spend_bundle_id = spend_bundle.name()
485
483
 
@@ -488,10 +486,7 @@ class MempoolManager:
488
486
  f"pre_validate_spendbundle took {duration:0.4f} seconds "
489
487
  f"for {spend_bundle_id} (queue-size: {self._worker_queue_size})",
490
488
  )
491
- if ret.error is not None:
492
- raise ValidationError(Err(ret.error), "pre_validate_spendbundle failed")
493
- assert ret.conds is not None
494
- return ret.conds
489
+ return sbc
495
490
 
496
491
  async def add_spend_bundle(
497
492
  self,
@@ -505,14 +500,16 @@ class MempoolManager:
505
500
  ] = None,
506
501
  ) -> SpendBundleAddInfo:
507
502
  """
508
- Validates and adds to mempool a new_spend with the given NPCResult, and spend_name, and the current mempool.
509
- The mempool should be locked during this call (blockchain lock). If there are mempool conflicts, the conflicting
510
- spends might be removed (if the new spend is a superset of the previous). Otherwise, the new spend might be
503
+ Validates and adds to mempool a new_spend with the given
504
+ SpendBundleConditions, and spend_name, and the current mempool. The mempool
505
+ should be locked during this call (blockchain lock). If there are mempool
506
+ conflicts, the conflicting spends might be removed (if the new spend is
507
+ a superset of the previous). Otherwise, the new spend might be
511
508
  added to the potential pool.
512
509
 
513
510
  Args:
514
511
  new_spend: spend bundle to validate and add
515
- conds: result of running the clvm transaction in a fake block
512
+ conds: SpendBundleConditions resulting from running the clvm in the spend bundle's coin spends
516
513
  spend_name: hash of the spend bundle data, passed in as an optimization
517
514
 
518
515
  Returns:
@@ -599,64 +596,57 @@ class MempoolManager:
599
596
  removal_names: set[bytes32] = set()
600
597
  additions_dict: dict[bytes32, Coin] = {}
601
598
  addition_amount: int = 0
602
- # Map of coin ID to eligibility information
603
- eligibility_and_additions: dict[bytes32, EligibilityAndAdditions] = {}
604
- for spend in conds.spends:
605
- coin_id = bytes32(spend.coin_id)
606
- removal_names.add(coin_id)
607
- spend_additions = []
608
- for puzzle_hash, amount, _ in spend.create_coin:
609
- child_coin = Coin(coin_id, puzzle_hash, uint64(amount))
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()
599
+
600
+ # Map of coin ID to SpendConditions
601
+ spend_conditions = {bytes32(spend.coin_id): spend for spend in conds.spends}
602
+
603
+ # if this happens, the SpendBundle doesn't match the
604
+ # SpendBundleConditions.
605
+ assert len(new_spend.coin_spends) == len(spend_conditions)
606
+
621
607
  bundle_coin_spends: dict[bytes32, BundleCoinSpend] = {}
622
608
  for coin_spend in new_spend.coin_spends:
623
609
  coin_id = coin_spend.coin.name()
624
- removal_names_from_coin_spends.add(coin_id)
625
- eligibility_info = eligibility_and_additions.get(
626
- coin_id,
627
- EligibilityAndAdditions(is_eligible_for_dedup=False, spend_additions=[], ff_puzzle_hash=None),
628
- )
610
+ removal_names.add(coin_id)
629
611
 
630
- supports_dedup = eligibility_info.is_eligible_for_dedup
631
- if supports_dedup and not is_clvm_canonical(bytes(coin_spend.solution)):
612
+ # if this coin_id isn't found, the SpendBundle doesn't match the
613
+ # SpendBundleConditions.
614
+ spend_conds = spend_conditions.pop(coin_id)
615
+
616
+ if bool(spend_conds.flags & ELIGIBLE_FOR_DEDUP) and not is_clvm_canonical(bytes(coin_spend.solution)):
632
617
  return Err.INVALID_COIN_SOLUTION, None, []
633
618
 
634
- mark_as_fast_forward = eligibility_info.ff_puzzle_hash is not None and supports_fast_forward(coin_spend)
635
619
  lineage_info = None
636
- if mark_as_fast_forward:
620
+ if bool(spend_conds.flags & ELIGIBLE_FOR_FF) and supports_fast_forward(coin_spend):
637
621
  # Make sure the fast forward spend still has a version that is
638
- # still unspent, because if the singleton has been melted, the
639
- # fast forward spend will never become valid.
640
- assert eligibility_info.ff_puzzle_hash is not None
641
- lineage_info = await get_unspent_lineage_info_for_puzzle_hash(eligibility_info.ff_puzzle_hash)
642
- if lineage_info is None:
643
- mark_as_fast_forward = False
622
+ # still unspent, because if the singleton has been spent in a
623
+ # non-FF spend, this fast forward spend will never become valid.
624
+ # So treat this as a normal spend, which requires the exact coin
625
+ # to exist and be unspent.
626
+ # Singletons that were created before the optimization of using
627
+ # spent_index will also fail this test, and such spends will
628
+ # fall back to be treated as non-FF spends.
629
+ lineage_info = await get_unspent_lineage_info_for_puzzle_hash(spend_conds.puzzle_hash)
630
+
631
+ spend_additions = []
632
+ for puzzle_hash, amount, _ in spend_conds.create_coin:
633
+ child_coin = Coin(coin_id, puzzle_hash, uint64(amount))
634
+ spend_additions.append(child_coin)
635
+ additions_dict[child_coin.name()] = child_coin
636
+ addition_amount += amount
637
+
644
638
  bundle_coin_spends[coin_id] = BundleCoinSpend(
645
639
  coin_spend=coin_spend,
646
- eligible_for_dedup=supports_dedup,
647
- eligible_for_fast_forward=mark_as_fast_forward,
648
- additions=eligibility_info.spend_additions,
640
+ eligible_for_dedup=bool(spend_conds.flags & ELIGIBLE_FOR_DEDUP),
641
+ additions=spend_additions,
642
+ cost=uint64(spend_conds.condition_cost + spend_conds.execution_cost),
649
643
  latest_singleton_lineage=lineage_info,
650
644
  )
651
645
 
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
646
  # fast forward spends are only allowed when bundled with other, non-FF, spends
657
647
  # in order to evict an FF spend, it must be associated with a normal
658
648
  # spend that can be included in a block or invalidated some other way
659
- if all([s.eligible_for_fast_forward for s in bundle_coin_spends.values()]):
649
+ if all([s.supports_fast_forward for s in bundle_coin_spends.values()]):
660
650
  return Err.INVALID_SPEND_BUNDLE, None, []
661
651
 
662
652
  removal_record_dict: dict[bytes32, CoinRecord] = {}
@@ -757,7 +747,7 @@ class MempoolManager:
757
747
  return Err.IMPOSSIBLE_SECONDS_ABSOLUTE_CONSTRAINTS, None, [] # MempoolInclusionStatus.FAILED
758
748
 
759
749
  potential = MempoolItem(
760
- new_spend,
750
+ new_spend.aggregated_signature,
761
751
  uint64(fees),
762
752
  conds,
763
753
  spend_name,
@@ -776,7 +766,7 @@ class MempoolManager:
776
766
 
777
767
  if fail_reason is Err.MEMPOOL_CONFLICT:
778
768
  log.debug(f"Replace attempted. number of MempoolItems: {len(conflicts)}")
779
- if not can_replace(conflicts, removal_names, potential):
769
+ if not can_replace(conflicts, potential):
780
770
  return Err.MEMPOOL_CONFLICT, potential, []
781
771
 
782
772
  duration = time.monotonic() - start_time
@@ -797,7 +787,7 @@ class MempoolManager:
797
787
  """Returns a full SpendBundle if it's inside one the mempools"""
798
788
  item: Optional[MempoolItem] = self.mempool.get_item_by_id(bundle_hash)
799
789
  if item is not None:
800
- return item.spend_bundle
790
+ return item.to_spend_bundle()
801
791
  return None
802
792
 
803
793
  def get_mempool_item(self, bundle_hash: bytes32, include_pending: bool = False) -> Optional[MempoolItem]:
@@ -950,8 +940,7 @@ class MempoolManager:
950
940
 
951
941
  removals: set[bytes32] = set()
952
942
  for item in old_pool.all_items():
953
- for s in item.spend_bundle.coin_spends:
954
- removals.add(s.coin.name())
943
+ removals.update(item.bundle_coin_spends)
955
944
 
956
945
  for record in await self.get_coin_records(removals):
957
946
  name = record.coin.name()
@@ -967,7 +956,7 @@ class MempoolManager:
967
956
 
968
957
  for item in old_pool.all_items():
969
958
  info = await self.add_spend_bundle(
970
- item.spend_bundle,
959
+ item.to_spend_bundle(),
971
960
  item.conds,
972
961
  item.spend_bundle_name,
973
962
  item.height_added_to_mempool,
@@ -989,7 +978,7 @@ class MempoolManager:
989
978
  txs_added = []
990
979
  for item in potential_txs.values():
991
980
  info = await self.add_spend_bundle(
992
- item.spend_bundle,
981
+ item.to_spend_bundle(),
993
982
  item.conds,
994
983
  item.spend_bundle_name,
995
984
  item.height_added_to_mempool,
@@ -997,7 +986,7 @@ class MempoolManager:
997
986
  lineage_cache.get_unspent_lineage_info,
998
987
  )
999
988
  if info.status == MempoolInclusionStatus.SUCCESS:
1000
- txs_added.append(NewPeakItem(item.spend_bundle_name, item.spend_bundle, item.conds))
989
+ txs_added.append(item.spend_bundle_name)
1001
990
  mempool_item_removals.extend(info.removals)
1002
991
  log.info(
1003
992
  f"Size of mempool: {self.mempool.size()} spends, "
@@ -1020,7 +1009,7 @@ class MempoolManager:
1020
1009
  return items
1021
1010
  if mempool_filter.Match(bytearray(item.spend_bundle_name)):
1022
1011
  continue
1023
- items.append(item.spend_bundle)
1012
+ items.append(item.to_spend_bundle())
1024
1013
 
1025
1014
  return items
1026
1015
 
@@ -1036,17 +1025,12 @@ def optional_max(a: Optional[T], b: Optional[T]) -> Optional[T]:
1036
1025
  return max((v for v in [a, b] if v is not None), default=None)
1037
1026
 
1038
1027
 
1039
- def can_replace(
1040
- conflicting_items: list[MempoolItem],
1041
- removal_names: set[bytes32],
1042
- new_item: MempoolItem,
1043
- ) -> bool:
1028
+ def can_replace(conflicting_items: list[MempoolItem], new_item: MempoolItem) -> bool:
1044
1029
  """
1045
1030
  This function implements the mempool replacement rules. Given a Mempool item
1046
1031
  we're attempting to insert into the mempool (new_item) and the set of existing
1047
1032
  mempool items that conflict with it, this function answers the question whether
1048
- the existing items can be replaced by the new one. The removals parameter are
1049
- the coin IDs the new mempool item is spending.
1033
+ the existing items can be replaced by the new one.
1050
1034
  """
1051
1035
 
1052
1036
  conflicting_fees = 0
@@ -1071,10 +1055,10 @@ def can_replace(
1071
1055
  # fee than AB therefore kicking out A altogether. The better way to solve this would be to keep a cache
1072
1056
  # of booted transactions like A, and retry them after they get removed from mempool due to a conflict.
1073
1057
  for coin_id, bcs in item.bundle_coin_spends.items():
1074
- if coin_id not in removal_names:
1058
+ if coin_id not in new_item.bundle_coin_spends:
1075
1059
  log.debug("Rejecting conflicting tx as it does not spend conflicting coin %s", coin_id)
1076
1060
  return False
1077
- if bcs.eligible_for_fast_forward:
1061
+ if bcs.supports_fast_forward:
1078
1062
  existing_ff_spends.add(bytes32(coin_id))
1079
1063
  if bcs.eligible_for_dedup:
1080
1064
  existing_dedup_spends.add(bytes32(coin_id))
@@ -1125,7 +1109,7 @@ def can_replace(
1125
1109
 
1126
1110
  if len(existing_ff_spends) > 0 or len(existing_dedup_spends) > 0:
1127
1111
  for coin_id, bcs in new_item.bundle_coin_spends.items():
1128
- if not bcs.eligible_for_fast_forward and coin_id in existing_ff_spends:
1112
+ if not bcs.supports_fast_forward and coin_id in existing_ff_spends:
1129
1113
  log.debug("Rejecting conflicting tx due to changing ELIGIBLE_FOR_FF of coin spend %s", coin_id)
1130
1114
  return False
1131
1115
 
@@ -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
@@ -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(bytes32(spend.puzzle_hash))
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(bytes32(puzzle_hash))
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))
@@ -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
- if header_block_sub_rec.overflow and header_block_sub_rec.first_in_sub_slot:
416
- sub_slots_num = 2
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(int(weight)))
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
- idx = len(recent_reward_chain) - 1 - idx # reverse
1535
+ original_idx = len(recent_reward_chain) - 1 - idx # reverse
1537
1536
  # find first block after sub slot end
1538
- while idx < len(recent_reward_chain):
1539
- curr = recent_reward_chain[idx]
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
- idx += 1
1546
+ original_idx += 1
1548
1547
  return None, uint32(0)
1549
1548
 
1550
1549
 
@@ -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": prover.get_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,