chia-blockchain 2.5.6rc1__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.6rc1.dist-info → chia_blockchain-2.5.7.dist-info}/METADATA +31 -31
  365. {chia_blockchain-2.5.6rc1.dist-info → chia_blockchain-2.5.7.dist-info}/RECORD +368 -240
  366. {chia_blockchain-2.5.6rc1.dist-info → chia_blockchain-2.5.7.dist-info}/WHEEL +1 -1
  367. {chia_blockchain-2.5.6rc1.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.6rc1.dist-info → chia_blockchain-2.5.7.dist-info/licenses}/LICENSE +0 -0
@@ -22,7 +22,7 @@ async def check_block_store_invariant(bc: Blockchain):
22
22
 
23
23
  in_chain = set()
24
24
  max_height = -1
25
- async with db_wrapper.writer_maybe_transaction() as conn:
25
+ async with bc.block_store.transaction() as conn:
26
26
  async with conn.execute("SELECT height, in_main_chain FROM full_blocks") as cursor:
27
27
  rows = await cursor.fetchall()
28
28
  for row in rows:
@@ -76,7 +76,7 @@ async def _validate_and_add_block(
76
76
  conds = None
77
77
  else:
78
78
  # fake the signature validation. Just say True here.
79
- conds = SpendBundleConditions([], 0, 0, 0, None, None, [], 0, 0, 0, True, 0, 0)
79
+ conds = SpendBundleConditions([], 0, 0, 0, None, None, [], 0, 0, 0, True, 0, 0, 0, 0, 0)
80
80
  results = PreValidationResult(None, uint64(1), conds, uint32(0))
81
81
  else:
82
82
  future = await pre_validate_block(
@@ -116,11 +116,10 @@ async def _validate_and_add_block(
116
116
  if err is not None:
117
117
  # Got an error
118
118
  raise AssertionError(err)
119
- else:
120
- # Here we will enforce checking of the exact error
121
- if err != expected_error:
122
- # Did not get the right error, or did not get an error
123
- raise AssertionError(f"Expected {expected_error} but got {err}")
119
+ # Here we will enforce checking of the exact error
120
+ elif err != expected_error:
121
+ # Did not get the right error, or did not get an error
122
+ raise AssertionError(f"Expected {expected_error} but got {err}")
124
123
 
125
124
  if expected_result is not None and expected_result != result:
126
125
  raise AssertionError(f"Expected {expected_result} but got {result}")
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import re
3
4
  from dataclasses import dataclass, field
4
5
  from typing import TYPE_CHECKING, ClassVar, Optional, cast
5
6
 
@@ -93,7 +94,7 @@ async def test_augmented_chain(default_10000_blocks: list[FullBlock]) -> None:
93
94
  with pytest.raises(KeyError):
94
95
  await abc.prev_block_hash([blocks[2].header_hash])
95
96
 
96
- with pytest.raises(ValueError, match="Err.GENERATOR_REF_HAS_NO_GENERATOR"):
97
+ with pytest.raises(ValueError, match=re.escape(Err.GENERATOR_REF_HAS_NO_GENERATOR.name)):
97
98
  await abc.lookup_block_generators(blocks[3].header_hash, {uint32(3)})
98
99
 
99
100
  block_records = []
@@ -105,11 +106,11 @@ async def test_augmented_chain(default_10000_blocks: list[FullBlock]) -> None:
105
106
 
106
107
  assert abc.height_to_block_record(uint32(1)) == block_records[1]
107
108
 
108
- with pytest.raises(ValueError, match="Err.GENERATOR_REF_HAS_NO_GENERATOR"):
109
+ with pytest.raises(ValueError, match=re.escape(Err.GENERATOR_REF_HAS_NO_GENERATOR.name)):
109
110
  await abc.lookup_block_generators(blocks[10].header_hash, {uint32(3), uint32(10)})
110
111
 
111
112
  # block 1 exists in the chain, but it doesn't have a generator
112
- with pytest.raises(ValueError, match="Err.GENERATOR_REF_HAS_NO_GENERATOR"):
113
+ with pytest.raises(ValueError, match=re.escape(Err.GENERATOR_REF_HAS_NO_GENERATOR.name)):
113
114
  await abc.lookup_block_generators(blocks[1].header_hash, {uint32(1)})
114
115
 
115
116
  expect_gen = blocks[2].transactions_generator
@@ -4,6 +4,7 @@ import asyncio
4
4
  import copy
5
5
  import logging
6
6
  import random
7
+ import re
7
8
  import time
8
9
  from collections.abc import AsyncIterator, Awaitable
9
10
  from contextlib import asynccontextmanager
@@ -3647,7 +3648,7 @@ class TestReorgs:
3647
3648
  heights.append(block.height)
3648
3649
  await _validate_and_add_block(b, block)
3649
3650
 
3650
- blocks = await b.get_block_records_at(heights, batch_size=2)
3651
+ blocks = await b.get_block_records_at(heights)
3651
3652
  assert blocks
3652
3653
  assert len(blocks) == 200
3653
3654
  assert blocks[-1].height == 199
@@ -4158,24 +4159,24 @@ async def test_lookup_block_generators(
4158
4159
  # make sure we don't cross the forks
4159
4160
  if clear_cache:
4160
4161
  b.clean_block_records()
4161
- with pytest.raises(ValueError, match="Err.GENERATOR_REF_HAS_NO_GENERATOR"):
4162
+ with pytest.raises(ValueError, match=re.escape(Err.GENERATOR_REF_HAS_NO_GENERATOR.name)):
4162
4163
  await b.lookup_block_generators(peak_1.prev_header_hash, {uint32(516)})
4163
4164
 
4164
4165
  if clear_cache:
4165
4166
  b.clean_block_records()
4166
- with pytest.raises(ValueError, match="Err.GENERATOR_REF_HAS_NO_GENERATOR"):
4167
+ with pytest.raises(ValueError, match=re.escape(Err.GENERATOR_REF_HAS_NO_GENERATOR.name)):
4167
4168
  await b.lookup_block_generators(peak_2.prev_header_hash, {uint32(503)})
4168
4169
 
4169
4170
  # make sure we fail when looking up a non-transaction block from the main
4170
4171
  # chain, regardless of which chain we start at
4171
4172
  if clear_cache:
4172
4173
  b.clean_block_records()
4173
- with pytest.raises(ValueError, match="Err.GENERATOR_REF_HAS_NO_GENERATOR"):
4174
+ with pytest.raises(ValueError, match=re.escape(Err.GENERATOR_REF_HAS_NO_GENERATOR.name)):
4174
4175
  await b.lookup_block_generators(peak_1.prev_header_hash, {uint32(8)})
4175
4176
 
4176
4177
  if clear_cache:
4177
4178
  b.clean_block_records()
4178
- with pytest.raises(ValueError, match="Err.GENERATOR_REF_HAS_NO_GENERATOR"):
4179
+ with pytest.raises(ValueError, match=re.escape(Err.GENERATOR_REF_HAS_NO_GENERATOR.name)):
4179
4180
  await b.lookup_block_generators(peak_2.prev_header_hash, {uint32(8)})
4180
4181
 
4181
4182
  # if we try to look up generators starting from a disconnected block, we
@@ -4336,6 +4337,7 @@ async def test_include_spends_same_as_parent(
4336
4337
  0,
4337
4338
  0,
4338
4339
  0,
4340
+ b"",
4339
4341
  )
4340
4342
  ],
4341
4343
  0,
@@ -4350,6 +4352,9 @@ async def test_include_spends_same_as_parent(
4350
4352
  True,
4351
4353
  0,
4352
4354
  0,
4355
+ 0,
4356
+ 0,
4357
+ 0,
4353
4358
  )
4354
4359
  # Now let's run the test
4355
4360
  test_setup.fork_info.include_spends(conds, test_setup.test_block, test_setup.test_block.header_hash)
@@ -73,7 +73,7 @@ class CoinStore:
73
73
  assert result.conds is not None
74
74
  for spend in result.conds.spends:
75
75
  for puzzle_hash, amount, hint in spend.create_coin:
76
- coin = Coin(bytes32(spend.coin_id), bytes32(puzzle_hash), uint64(amount))
76
+ coin = Coin(spend.coin_id, puzzle_hash, uint64(amount))
77
77
  name = coin.name()
78
78
  ephemeral_db[name] = CoinRecord(
79
79
  coin,
@@ -5,9 +5,9 @@ from collections.abc import AsyncIterator, Iterable
5
5
  from contextlib import asynccontextmanager
6
6
  from dataclasses import dataclass, field
7
7
  from pathlib import Path
8
- from typing import Any, Optional, Union, cast
8
+ from typing import Any, Optional, cast
9
9
 
10
- from chia_rs import BlockRecord, Coin, G2Element
10
+ from chia_rs import BlockRecord, Coin, G1Element, G2Element
11
11
  from chia_rs.sized_bytes import bytes32
12
12
  from chia_rs.sized_ints import uint8, uint16, uint32, uint64
13
13
 
@@ -22,7 +22,6 @@ from chia.farmer.farmer_rpc_client import FarmerRpcClient
22
22
  from chia.full_node.full_node_rpc_client import FullNodeRpcClient
23
23
  from chia.rpc.rpc_client import RpcClient
24
24
  from chia.simulator.simulator_full_node_rpc_client import SimulatorFullNodeRpcClient
25
- from chia.types.coin_record import CoinRecord
26
25
  from chia.types.signing_mode import SigningMode
27
26
  from chia.util.bech32m import encode_puzzle_hash
28
27
  from chia.util.config import load_config
@@ -31,15 +30,28 @@ from chia.wallet.nft_wallet.nft_info import NFTInfo
31
30
  from chia.wallet.nft_wallet.nft_wallet import NFTWallet
32
31
  from chia.wallet.transaction_record import TransactionRecord
33
32
  from chia.wallet.util.transaction_type import TransactionType
34
- from chia.wallet.util.tx_config import CoinSelectionConfig, TXConfig
33
+ from chia.wallet.util.tx_config import TXConfig
35
34
  from chia.wallet.util.wallet_types import WalletType
36
35
  from chia.wallet.wallet_request_types import (
36
+ CATAssetIDToName,
37
+ CATAssetIDToNameResponse,
38
+ CATGetName,
39
+ CATGetNameResponse,
37
40
  GetSyncStatusResponse,
41
+ GetTransaction,
42
+ GetTransactionResponse,
43
+ GetWallets,
44
+ GetWalletsResponse,
38
45
  NFTCalculateRoyalties,
39
46
  NFTCalculateRoyaltiesResponse,
40
47
  NFTGetInfo,
41
48
  NFTGetInfoResponse,
42
49
  SendTransactionMultiResponse,
50
+ SignMessageByAddress,
51
+ SignMessageByAddressResponse,
52
+ SignMessageByID,
53
+ SignMessageByIDResponse,
54
+ WalletInfoResponse,
43
55
  )
44
56
  from chia.wallet.wallet_rpc_client import WalletRpcClient
45
57
  from chia.wallet.wallet_spend_bundle import WalletSpendBundle
@@ -93,11 +105,11 @@ class TestWalletRpcClient(TestRpcClient):
93
105
  self.add_to_log("get_sync_status", ())
94
106
  return GetSyncStatusResponse(synced=True, syncing=False)
95
107
 
96
- async def get_wallets(self, wallet_type: Optional[WalletType] = None) -> list[dict[str, Union[str, int]]]:
97
- self.add_to_log("get_wallets", (wallet_type,))
108
+ async def get_wallets(self, request: GetWallets) -> GetWalletsResponse:
109
+ self.add_to_log("get_wallets", (request,))
98
110
  # we cant start with zero because ints cant have a leading zero
99
- if wallet_type is not None:
100
- w_type = wallet_type
111
+ if request.type is not None:
112
+ w_type = WalletType(request.type)
101
113
  elif str(self.fingerprint).startswith(str(WalletType.STANDARD_WALLET.value + 1)):
102
114
  w_type = WalletType.STANDARD_WALLET
103
115
  elif str(self.fingerprint).startswith(str(WalletType.CAT.value + 1)):
@@ -110,57 +122,79 @@ class TestWalletRpcClient(TestRpcClient):
110
122
  w_type = WalletType.POOLING_WALLET
111
123
  else:
112
124
  raise ValueError(f"Invalid fingerprint: {self.fingerprint}")
113
- return [{"id": 1, "type": w_type}]
114
-
115
- async def get_transaction(self, transaction_id: bytes32) -> TransactionRecord:
116
- self.add_to_log("get_transaction", (transaction_id,))
117
- return TransactionRecord(
118
- confirmed_at_height=uint32(1),
119
- created_at_time=uint64(1234),
120
- to_puzzle_hash=bytes32([1] * 32),
121
- amount=uint64(12345678),
122
- fee_amount=uint64(1234567),
123
- confirmed=False,
124
- sent=uint32(0),
125
- spend_bundle=WalletSpendBundle([], G2Element()),
126
- additions=[Coin(bytes32([1] * 32), bytes32([2] * 32), uint64(12345678))],
127
- removals=[Coin(bytes32([2] * 32), bytes32([4] * 32), uint64(12345678))],
128
- wallet_id=uint32(1),
129
- sent_to=[("aaaaa", uint8(1), None)],
130
- trade_id=None,
131
- type=uint32(TransactionType.OUTGOING_TX.value),
132
- name=bytes32([2] * 32),
133
- memos=[(bytes32([3] * 32), [bytes([4] * 32)])],
134
- valid_times=ConditionValidTimes(),
125
+ return GetWalletsResponse([WalletInfoResponse(id=uint32(1), name="", type=uint8(w_type.value), data="")])
126
+
127
+ async def get_transaction(self, request: GetTransaction) -> GetTransactionResponse:
128
+ self.add_to_log("get_transaction", (request,))
129
+ return GetTransactionResponse(
130
+ TransactionRecord(
131
+ confirmed_at_height=uint32(1),
132
+ created_at_time=uint64(1234),
133
+ to_puzzle_hash=bytes32([1] * 32),
134
+ to_address=encode_puzzle_hash(bytes32([1] * 32), "xch"),
135
+ amount=uint64(12345678),
136
+ fee_amount=uint64(1234567),
137
+ confirmed=False,
138
+ sent=uint32(0),
139
+ spend_bundle=WalletSpendBundle([], G2Element()),
140
+ additions=[Coin(bytes32([1] * 32), bytes32([2] * 32), uint64(12345678))],
141
+ removals=[Coin(bytes32([2] * 32), bytes32([4] * 32), uint64(12345678))],
142
+ wallet_id=uint32(1),
143
+ sent_to=[("aaaaa", uint8(1), None)],
144
+ trade_id=None,
145
+ type=uint32(TransactionType.OUTGOING_TX.value),
146
+ name=bytes32([2] * 32),
147
+ memos={bytes32([3] * 32): [bytes([4] * 32)]},
148
+ valid_times=ConditionValidTimes(),
149
+ ),
150
+ bytes32([2] * 32),
135
151
  )
136
152
 
137
- async def get_cat_name(self, wallet_id: int) -> str:
138
- self.add_to_log("get_cat_name", (wallet_id,))
139
- return "test" + str(wallet_id)
153
+ async def get_cat_name(self, request: CATGetName) -> CATGetNameResponse:
154
+ self.add_to_log("get_cat_name", (request.wallet_id,))
155
+ return CATGetNameResponse(request.wallet_id, "test" + str(request.wallet_id))
140
156
 
141
- async def sign_message_by_address(self, address: str, message: str) -> tuple[str, str, str]:
142
- self.add_to_log("sign_message_by_address", (address, message))
143
- pubkey = bytes([3] * 48).hex()
144
- signature = bytes([6] * 576).hex()
157
+ async def sign_message_by_address(self, request: SignMessageByAddress) -> SignMessageByAddressResponse:
158
+ self.add_to_log("sign_message_by_address", (request.address, request.message))
159
+ pubkey = G1Element.from_bytes(
160
+ bytes.fromhex(
161
+ "b5acf3599bc5fa5da1c00f6cc3d5bcf1560def67778b7f50a8c373a83f78761505b6250ab776e38a292e26628009aec4"
162
+ )
163
+ )
164
+ signature = G2Element.from_bytes(
165
+ bytes.fromhex(
166
+ "c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
167
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
168
+ )
169
+ )
145
170
  signing_mode = SigningMode.CHIP_0002.value
146
- return pubkey, signature, signing_mode
171
+ return SignMessageByAddressResponse(pubkey, signature, signing_mode)
147
172
 
148
- async def sign_message_by_id(self, id: str, message: str) -> tuple[str, str, str]:
149
- self.add_to_log("sign_message_by_id", (id, message))
150
- pubkey = bytes([4] * 48).hex()
151
- signature = bytes([7] * 576).hex()
173
+ async def sign_message_by_id(self, request: SignMessageByID) -> SignMessageByIDResponse:
174
+ self.add_to_log("sign_message_by_id", (request.id, request.message))
175
+ pubkey = G1Element.from_bytes(
176
+ bytes.fromhex(
177
+ "a9e652cb551d5978a9ee4b7aa52a4e826078a54b08a3d903c38611cb8a804a9a29c926e4f8549314a079e04ecde10cc1"
178
+ )
179
+ )
180
+ signature = G2Element.from_bytes(
181
+ bytes.fromhex(
182
+ "c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
183
+ "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
184
+ )
185
+ )
152
186
  signing_mode = SigningMode.CHIP_0002.value
153
- return pubkey, signature, signing_mode
187
+ return SignMessageByIDResponse(pubkey, signature, bytes32.zeros, signing_mode)
154
188
 
155
- async def cat_asset_id_to_name(self, asset_id: bytes32) -> Optional[tuple[Optional[uint32], str]]:
189
+ async def cat_asset_id_to_name(self, request: CATAssetIDToName) -> CATAssetIDToNameResponse:
156
190
  """
157
191
  if bytes32([1] * 32), return (uint32(2), "test1"), if bytes32([1] * 32), return (uint32(3), "test2")
158
192
  """
159
- self.add_to_log("cat_asset_id_to_name", (asset_id,))
193
+ self.add_to_log("cat_asset_id_to_name", (request.asset_id,))
160
194
  for i in range(256):
161
- if asset_id == get_bytes32(i):
162
- return uint32(i + 1), "test" + str(i)
163
- return None
195
+ if request.asset_id == get_bytes32(i):
196
+ return CATAssetIDToNameResponse(uint32(i + 1), "test" + str(i))
197
+ return CATAssetIDToNameResponse(wallet_id=None, name=None)
164
198
 
165
199
  async def get_nft_info(self, request: NFTGetInfo) -> NFTGetInfoResponse:
166
200
  self.add_to_log("get_nft_info", (request.coin_id, request.latest))
@@ -201,54 +235,6 @@ class TestWalletRpcClient(TestRpcClient):
201
235
  )
202
236
  )
203
237
 
204
- async def get_spendable_coins(
205
- self,
206
- wallet_id: int,
207
- coin_selection_config: CoinSelectionConfig,
208
- ) -> tuple[list[CoinRecord], list[CoinRecord], list[Coin]]:
209
- """
210
- We return a tuple containing: (confirmed records, unconfirmed removals, unconfirmed additions)
211
- """
212
- self.add_to_log(
213
- "get_spendable_coins",
214
- (wallet_id, coin_selection_config),
215
- )
216
- confirmed_records = [
217
- CoinRecord(
218
- Coin(bytes32([1] * 32), bytes32([2] * 32), uint64(1234560000)),
219
- uint32(123456),
220
- uint32(0),
221
- False,
222
- uint64(0),
223
- ),
224
- CoinRecord(
225
- Coin(bytes32([3] * 32), bytes32([4] * 32), uint64(1234560000)),
226
- uint32(123456),
227
- uint32(0),
228
- False,
229
- uint64(0),
230
- ),
231
- ]
232
- unconfirmed_removals = [
233
- CoinRecord(
234
- Coin(bytes32([5] * 32), bytes32([6] * 32), uint64(1234570000)),
235
- uint32(123457),
236
- uint32(0),
237
- True,
238
- uint64(0),
239
- )
240
- ]
241
- unconfirmed_additions = [Coin(bytes32([7] * 32), bytes32([8] * 32), uint64(1234580000))]
242
- return confirmed_records, unconfirmed_removals, unconfirmed_additions
243
-
244
- async def get_next_address(self, wallet_id: int, new_address: bool) -> str:
245
- self.add_to_log("get_next_address", (wallet_id, new_address))
246
- addr = encode_puzzle_hash(bytes32([self.wallet_index] * 32), "xch")
247
- self.wallet_index += 1
248
- if self.wallet_index > 254:
249
- self.wallet_index = 1
250
- return addr
251
-
252
238
  async def send_transaction_multi(
253
239
  self,
254
240
  wallet_id: int,
@@ -268,6 +254,7 @@ class TestWalletRpcClient(TestRpcClient):
268
254
  confirmed_at_height=uint32(1),
269
255
  created_at_time=uint64(1234),
270
256
  to_puzzle_hash=bytes32([1] * 32),
257
+ to_address=encode_puzzle_hash(bytes32([1] * 32), "xch"),
271
258
  amount=uint64(12345678),
272
259
  fee_amount=uint64(1234567),
273
260
  confirmed=False,
@@ -280,7 +267,7 @@ class TestWalletRpcClient(TestRpcClient):
280
267
  trade_id=None,
281
268
  type=uint32(TransactionType.OUTGOING_TX.value),
282
269
  name=name,
283
- memos=[(bytes32([3] * 32), [bytes([4] * 32)])],
270
+ memos={bytes32([3] * 32): [bytes([4] * 32)]},
284
271
  valid_times=ConditionValidTimes(),
285
272
  ),
286
273
  name,
@@ -114,7 +114,7 @@ async def test_successfully_dispatches(
114
114
  assert by_name["macos-intel"]["conclusion"] == "skipped"
115
115
  assert by_name["windows"]["conclusion"] == "skipped"
116
116
 
117
- versions = ["3.9", "3.10", "3.11", "3.12"]
117
+ versions = ["3.10", "3.11", "3.12"]
118
118
  runs_by_name: dict[str, list[str]] = {name: [] for name in ["ubuntu", "macos-arm"]}
119
119
  for name in by_name:
120
120
  platform, _, rest = name.partition(" / ")
@@ -8,10 +8,12 @@ from _pytest.capture import CaptureFixture
8
8
  from chia._tests.util.time_out_assert import time_out_assert
9
9
  from chia.cmds.farm_funcs import summary
10
10
  from chia.farmer.farmer import Farmer
11
+ from chia.farmer.farmer_service import FarmerService
11
12
  from chia.harvester.harvester import Harvester
12
- from chia.server.aliases import FarmerService, HarvesterService, WalletService
13
+ from chia.harvester.harvester_service import HarvesterService
13
14
  from chia.simulator.block_tools import BlockTools
14
15
  from chia.simulator.start_simulator import SimulatorFullNodeService
16
+ from chia.wallet.wallet_service import WalletService
15
17
 
16
18
 
17
19
  @pytest.mark.anyio
@@ -46,7 +48,15 @@ async def test_farm_summary_command(
46
48
  wallet_rpc_port = wallet_service.rpc_server.webserver.listen_port
47
49
  farmer_rpc_port = farmer_service.rpc_server.webserver.listen_port
48
50
 
49
- await summary(full_node_rpc_port, wallet_rpc_port, None, farmer_rpc_port, bt.root_path)
51
+ # Test with include_pool_rewards=False (original test)
52
+ await summary(
53
+ rpc_port=full_node_rpc_port,
54
+ wallet_rpc_port=wallet_rpc_port,
55
+ harvester_rpc_port=None,
56
+ farmer_rpc_port=farmer_rpc_port,
57
+ include_pool_rewards=False,
58
+ root_path=bt.root_path,
59
+ )
50
60
 
51
61
  captured = capsys.readouterr()
52
62
  match = re.search(r"^.+(Farming status:.+)$", captured.out, re.DOTALL)
@@ -64,3 +74,47 @@ async def test_farm_summary_command(
64
74
  assert "e (effective)" in lines[8]
65
75
  assert "Estimated network space:" in lines[9]
66
76
  assert "Expected time to win:" in lines[10]
77
+
78
+ # Test with include_pool_rewards=True
79
+ await summary(
80
+ rpc_port=full_node_rpc_port,
81
+ wallet_rpc_port=wallet_rpc_port,
82
+ harvester_rpc_port=None,
83
+ farmer_rpc_port=farmer_rpc_port,
84
+ include_pool_rewards=True,
85
+ root_path=bt.root_path,
86
+ )
87
+
88
+ captured = capsys.readouterr()
89
+ match = re.search(r"Farming status:.*", captured.out, re.DOTALL)
90
+ assert match, "no 'Farming status:' line"
91
+ output = match.group(0).strip()
92
+ lines = [line.strip() for line in output.splitlines()]
93
+
94
+ # always check these first six lines
95
+ assert lines[0].startswith("Farming status:")
96
+ assert lines[1].startswith("Total chia farmed:")
97
+ assert lines[2].startswith("User transaction fees:")
98
+ assert lines[3].startswith("Farmer rewards:")
99
+ assert lines[4].startswith("Pool rewards:")
100
+ assert lines[5].startswith("Total rewards:")
101
+
102
+ # decide where the harvester section starts
103
+ if "Current/Last height farmed:" in output:
104
+ # we saw the height-farmed block, so it occupies lines[6-8]
105
+ assert lines[6].startswith("Current/Last height farmed:")
106
+ assert lines[7].startswith("Blocks since last farmed:")
107
+ assert lines[8].startswith("Time since last farmed:")
108
+ harvester_idx = 9
109
+ else:
110
+ # no height block, so harvester begins at line 6
111
+ harvester_idx = 6
112
+
113
+ # now the harvester lines
114
+ assert lines[harvester_idx] == "Local Harvester"
115
+ assert "plots of size" in lines[harvester_idx + 1]
116
+ assert lines[harvester_idx + 2].startswith("Plot count for all harvesters:")
117
+ assert lines[harvester_idx + 3].startswith("Total size of plots:")
118
+ assert lines[harvester_idx + 4].startswith("Estimated network space:")
119
+ assert lines[harvester_idx + 5].startswith("Expected time to win:")
120
+ assert lines[harvester_idx + 6].startswith("Note:")
@@ -4,6 +4,7 @@ from chia_rs import Coin, G2Element
4
4
  from chia_rs.sized_bytes import bytes32
5
5
  from chia_rs.sized_ints import uint32, uint64
6
6
 
7
+ from chia.util.bech32m import encode_puzzle_hash
7
8
  from chia.wallet.conditions import ConditionValidTimes
8
9
  from chia.wallet.signer_protocol import KeyHints, SigningInstructions, TransactionInfo, UnsignedTransaction
9
10
  from chia.wallet.transaction_record import TransactionRecord
@@ -27,6 +28,7 @@ STD_TX = TransactionRecord(
27
28
  confirmed_at_height=uint32(1),
28
29
  created_at_time=uint64(1234),
29
30
  to_puzzle_hash=get_bytes32(1),
31
+ to_address=encode_puzzle_hash(get_bytes32(1), "xch"),
30
32
  amount=uint64(12345678),
31
33
  fee_amount=uint64(1234567),
32
34
  confirmed=False,
@@ -39,7 +41,7 @@ STD_TX = TransactionRecord(
39
41
  trade_id=None,
40
42
  type=uint32(TransactionType.OUTGOING_TX.value),
41
43
  name=get_bytes32(2),
42
- memos=[(get_bytes32(3), [bytes([4] * 32)])],
44
+ memos={get_bytes32(3): [bytes([4] * 32)]},
43
45
  valid_times=ConditionValidTimes(),
44
46
  )
45
47
 
@@ -13,7 +13,6 @@ from chia._tests.cmds.wallet.test_consts import FINGERPRINT_ARG, STD_TX, STD_UTX
13
13
  from chia.types.blockchain_format.program import NIL, Program
14
14
  from chia.types.signing_mode import SigningMode
15
15
  from chia.util.bech32m import encode_puzzle_hash
16
- from chia.util.config import load_config
17
16
  from chia.wallet.conditions import Condition, ConditionValidTimes, CreateCoinAnnouncement, CreatePuzzleAnnouncement
18
17
  from chia.wallet.did_wallet.did_info import did_recovery_is_nil
19
18
  from chia.wallet.util.curry_and_treehash import NIL_TREEHASH
@@ -117,8 +116,8 @@ def test_did_sign_message(capsys: object, get_test_cli_clients: tuple[TestRpcCli
117
116
  # these are various things that should be in the output
118
117
  assert_list = [
119
118
  f"Message: {message.hex()}",
120
- f"Public Key: {bytes([4] * 48).hex()}",
121
- f"Signature: {bytes([7] * 576).hex()}",
119
+ "Public Key: a9e652cb551d5978a9ee4b7aa52a4e826078a54b08a3d903c38611cb8a804a9a29c926e4f8549314a079e04ecde10cc1",
120
+ "Signature: c0" + "00" * (42 - 1),
122
121
  f"Signing Mode: {SigningMode.CHIP_0002.value}",
123
122
  ]
124
123
  run_cli_command_and_assert(capsys, root_dir, [*command_args, f"-i{did_id}"], assert_list)
@@ -421,14 +420,10 @@ def test_did_transfer(capsys: object, get_test_cli_clients: tuple[TestRpcClients
421
420
  "150",
422
421
  ]
423
422
  # these are various things that should be in the output
424
- config = load_config(
425
- root_dir,
426
- "config.yaml",
427
- )
428
423
  assert_list = [
429
424
  f"Successfully transferred DID to {t_address}",
430
425
  f"Transaction ID: {get_bytes32(2).hex()}",
431
- f"Transaction: {STD_TX.to_json_dict_convenience(config)}",
426
+ f"Transaction: {STD_TX.to_json_dict()}",
432
427
  ]
433
428
  run_cli_command_and_assert(capsys, root_dir, command_args, assert_list)
434
429
  expected_calls: logType = {
@@ -64,19 +64,19 @@ def test_nft_sign_message(capsys: object, get_test_cli_clients: tuple[TestRpcCli
64
64
 
65
65
  inst_rpc_client = TestWalletRpcClient()
66
66
  test_rpc_clients.wallet_rpc_client = inst_rpc_client
67
- did_id = encode_puzzle_hash(get_bytes32(1), "nft")
67
+ nft_id = encode_puzzle_hash(get_bytes32(1), "nft")
68
68
  message = b"hello nft world!!"
69
- command_args = ["wallet", "did", "sign_message", FINGERPRINT_ARG, f"-m{message.hex()}"]
69
+ command_args = ["wallet", "nft", "sign_message", FINGERPRINT_ARG, f"-m{message.hex()}"]
70
70
  # these are various things that should be in the output
71
71
  assert_list = [
72
72
  f"Message: {message.hex()}",
73
- f"Public Key: {bytes([4] * 48).hex()}",
74
- f"Signature: {bytes([7] * 576).hex()}",
73
+ "Public Key: a9e652cb551d5978a9ee4b7aa52a4e826078a54b08a3d903c38611cb8a804a9a29c926e4f8549314a079e04ecde10cc1",
74
+ "Signature: c0" + "00" * (42 - 1),
75
75
  f"Signing Mode: {SigningMode.CHIP_0002.value}",
76
76
  ]
77
- run_cli_command_and_assert(capsys, root_dir, [*command_args, f"-i{did_id}"], assert_list)
77
+ run_cli_command_and_assert(capsys, root_dir, [*command_args, f"-i{nft_id}"], assert_list)
78
78
  expected_calls: logType = {
79
- "sign_message_by_id": [(did_id, message.hex())], # xch std
79
+ "sign_message_by_id": [(nft_id, message.hex())], # xch std
80
80
  }
81
81
  test_rpc_clients.wallet_rpc_client.check_log(expected_calls)
82
82