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
@@ -25,6 +25,7 @@ from chia_rs.sized_ints import uint32, uint64, uint128
25
25
  from chiabip158 import PyBIP158
26
26
  from colorlog import getLogger
27
27
 
28
+ from chia._tests.conftest import ConsensusMode
28
29
  from chia._tests.connection_utils import connect_and_get_peer, disconnect_all, disconnect_all_and_reconnect
29
30
  from chia._tests.util.blockchain_mock import BlockchainMock
30
31
  from chia._tests.util.misc import patch_request_handler, wallet_height_at_least
@@ -1702,6 +1703,11 @@ async def test_long_sync_untrusted_break(
1702
1703
  @pytest.mark.anyio
1703
1704
  @pytest.mark.parametrize("chain_length", [0, 100])
1704
1705
  @pytest.mark.parametrize("fork_point", [500, 1500])
1706
+ # TODO: todo_v2_plots once we have new test chains, we can probably re-enable this
1707
+ @pytest.mark.limit_consensus_modes(
1708
+ allows=[ConsensusMode.PLAIN, ConsensusMode.HARD_FORK_2_0],
1709
+ reason="after plot-v1 phase-out, the chains aren't valid anymore",
1710
+ )
1705
1711
  async def test_long_reorg_nodes_and_wallet(
1706
1712
  chain_length: int,
1707
1713
  fork_point: int,
@@ -21,7 +21,6 @@ from chia.protocols import wallet_protocol
21
21
  from chia.protocols.outbound_message import Message, NodeType
22
22
  from chia.protocols.protocol_message_types import ProtocolMessageTypes
23
23
  from chia.protocols.shared_protocol import Capability
24
- from chia.server.aliases import WalletService
25
24
  from chia.server.ws_connection import WSChiaConnection
26
25
  from chia.simulator import simulator_protocol
27
26
  from chia.simulator.block_tools import BlockTools
@@ -30,6 +29,7 @@ from chia.simulator.start_simulator import SimulatorFullNodeService
30
29
  from chia.types.coin_record import CoinRecord
31
30
  from chia.types.mempool_inclusion_status import MempoolInclusionStatus
32
31
  from chia.util.hash import std_hash
32
+ from chia.wallet.wallet_service import WalletService
33
33
 
34
34
  IDENTITY_PUZZLE = Program.to(1)
35
35
  IDENTITY_PUZZLE_HASH = IDENTITY_PUZZLE.get_tree_hash()
@@ -848,8 +848,8 @@ def test_signer_protocol_in(monkeypatch: pytest.MonkeyPatch) -> None:
848
848
  with open("some file", "wb") as file:
849
849
  file.write(byte_serialize_clvm_streamable(coin, translation_layer=FOO_COIN_TRANSLATION))
850
850
 
851
- with open("some file2", "wb") as file:
852
- file.write(byte_serialize_clvm_streamable(coin, translation_layer=FOO_COIN_TRANSLATION))
851
+ with open("some file2", "wb") as file2:
852
+ file2.write(byte_serialize_clvm_streamable(coin, translation_layer=FOO_COIN_TRANSLATION))
853
853
 
854
854
  result = runner.invoke(
855
855
  cmd, ["temp_cmd", "--signer-protocol-input", "some file", "--signer-protocol-input", "some file2"]
@@ -65,10 +65,9 @@ def satisfies_hint(obj: T, type_hint: type[T]) -> bool:
65
65
  object_hint_pairs.extend((v, args[1]) for v in obj.values())
66
66
  else:
67
67
  raise NotImplementedError(f"Type {origin} is not yet supported")
68
- else:
69
- # Handle concrete types
70
- if type(obj) is not type_hint:
71
- return False
68
+ # Handle concrete types
69
+ elif type(obj) is not type_hint:
70
+ return False
72
71
  return True
73
72
 
74
73
 
@@ -11,6 +11,7 @@ from chia_rs.sized_ints import uint8, uint32, uint64
11
11
  from chia._tests.util.db_connection import DBConnection
12
12
  from chia.types.blockchain_format.coin import Coin
13
13
  from chia.types.mempool_inclusion_status import MempoolInclusionStatus
14
+ from chia.util.bech32m import encode_puzzle_hash
14
15
  from chia.util.errors import Err
15
16
  from chia.wallet.conditions import ConditionValidTimes
16
17
  from chia.wallet.transaction_record import TransactionRecord, TransactionRecordOld, minimum_send_attempts
@@ -32,7 +33,7 @@ coin_3 = Coin(bytes32.random(module_seeded_random), bytes32.random(module_seeded
32
33
  tr1 = TransactionRecord(
33
34
  uint32(0), # confirmed height
34
35
  uint64(1000), # created_at_time
35
- bytes32(bytes32.random(module_seeded_random)), # to_puzzle_hash
36
+ bytes32(bytes32.zeros), # to_puzzle_hash
36
37
  uint64(1234), # amount
37
38
  uint64(12), # fee_amount
38
39
  False, # confirmed
@@ -45,15 +46,21 @@ tr1 = TransactionRecord(
45
46
  bytes32(bytes32.random(module_seeded_random)), # trade_id
46
47
  uint32(TransactionType.OUTGOING_TX), # type
47
48
  bytes32(bytes32.random(module_seeded_random)), # name
48
- [], # list[tuple[bytes32, list[bytes]]] memos
49
+ {}, # memos
49
50
  ConditionValidTimes(),
51
+ encode_puzzle_hash(bytes32(bytes32.zeros), "txch"),
50
52
  )
51
53
 
54
+ MINIMUM_CONFIG = {
55
+ "network_overrides": {"config": {"testnet": {"address_prefix": "txch"}}},
56
+ "selected_network": "testnet",
57
+ }
58
+
52
59
 
53
60
  @pytest.mark.anyio
54
61
  async def test_add() -> None:
55
62
  async with DBConnection(1) as db_wrapper:
56
- store = await WalletTransactionStore.create(db_wrapper)
63
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
57
64
 
58
65
  assert await store.get_transaction_record(tr1.name) is None
59
66
  await store.add_transaction_record(tr1)
@@ -63,7 +70,7 @@ async def test_add() -> None:
63
70
  @pytest.mark.anyio
64
71
  async def test_delete() -> None:
65
72
  async with DBConnection(1) as db_wrapper:
66
- store = await WalletTransactionStore.create(db_wrapper)
73
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
67
74
 
68
75
  await store.add_transaction_record(tr1)
69
76
  assert await store.get_transaction_record(tr1.name) == tr1
@@ -74,7 +81,7 @@ async def test_delete() -> None:
74
81
  @pytest.mark.anyio
75
82
  async def test_set_confirmed() -> None:
76
83
  async with DBConnection(1) as db_wrapper:
77
- store = await WalletTransactionStore.create(db_wrapper)
84
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
78
85
 
79
86
  await store.add_transaction_record(tr1)
80
87
  await store.set_confirmed(tr1.name, uint32(100))
@@ -87,7 +94,7 @@ async def test_set_confirmed() -> None:
87
94
  @pytest.mark.anyio
88
95
  async def test_increment_sent_noop(seeded_random: random.Random) -> None:
89
96
  async with DBConnection(1) as db_wrapper:
90
- store = await WalletTransactionStore.create(db_wrapper)
97
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
91
98
 
92
99
  assert (
93
100
  await store.increment_sent(
@@ -100,7 +107,7 @@ async def test_increment_sent_noop(seeded_random: random.Random) -> None:
100
107
  @pytest.mark.anyio
101
108
  async def test_increment_sent() -> None:
102
109
  async with DBConnection(1) as db_wrapper:
103
- store = await WalletTransactionStore.create(db_wrapper)
110
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
104
111
 
105
112
  await store.add_transaction_record(tr1)
106
113
  tr = await store.get_transaction_record(tr1.name)
@@ -126,7 +133,7 @@ async def test_increment_sent() -> None:
126
133
  @pytest.mark.anyio
127
134
  async def test_increment_sent_error() -> None:
128
135
  async with DBConnection(1) as db_wrapper:
129
- store = await WalletTransactionStore.create(db_wrapper)
136
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
130
137
 
131
138
  await store.add_transaction_record(tr1)
132
139
  tr = await store.get_transaction_record(tr1.name)
@@ -156,7 +163,7 @@ def test_filter_ok_mempool_status() -> None:
156
163
  @pytest.mark.anyio
157
164
  async def test_tx_reorged_update() -> None:
158
165
  async with DBConnection(1) as db_wrapper:
159
- store = await WalletTransactionStore.create(db_wrapper)
166
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
160
167
 
161
168
  tr = dataclasses.replace(tr1, sent=uint32(2), sent_to=[("peer1", uint8(1), None), ("peer2", uint8(1), None)])
162
169
  await store.add_transaction_record(tr)
@@ -173,7 +180,7 @@ async def test_tx_reorged_update() -> None:
173
180
  @pytest.mark.anyio
174
181
  async def test_tx_reorged_add() -> None:
175
182
  async with DBConnection(1) as db_wrapper:
176
- store = await WalletTransactionStore.create(db_wrapper)
183
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
177
184
 
178
185
  tr = dataclasses.replace(tr1, sent=uint32(2), sent_to=[("peer1", uint8(1), None), ("peer2", uint8(1), None)])
179
186
 
@@ -187,7 +194,7 @@ async def test_tx_reorged_add() -> None:
187
194
  @pytest.mark.anyio
188
195
  async def test_get_tx_record(seeded_random: random.Random) -> None:
189
196
  async with DBConnection(1) as db_wrapper:
190
- store = await WalletTransactionStore.create(db_wrapper)
197
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
191
198
 
192
199
  tr2 = dataclasses.replace(tr1, name=bytes32.random(seeded_random))
193
200
  tr3 = dataclasses.replace(tr1, name=bytes32.random(seeded_random))
@@ -212,7 +219,7 @@ async def test_get_tx_record(seeded_random: random.Random) -> None:
212
219
  @pytest.mark.anyio
213
220
  async def test_get_farming_rewards(seeded_random: random.Random) -> None:
214
221
  async with DBConnection(1) as db_wrapper:
215
- store = await WalletTransactionStore.create(db_wrapper)
222
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
216
223
 
217
224
  test_trs: list[TransactionRecord] = []
218
225
  # tr1 is type OUTGOING_TX
@@ -249,7 +256,7 @@ async def test_get_farming_rewards(seeded_random: random.Random) -> None:
249
256
  @pytest.mark.anyio
250
257
  async def test_get_all_unconfirmed(seeded_random: random.Random) -> None:
251
258
  async with DBConnection(1) as db_wrapper:
252
- store = await WalletTransactionStore.create(db_wrapper)
259
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
253
260
 
254
261
  tr2 = dataclasses.replace(
255
262
  tr1, name=bytes32.random(seeded_random), confirmed=True, confirmed_at_height=uint32(100)
@@ -263,7 +270,7 @@ async def test_get_all_unconfirmed(seeded_random: random.Random) -> None:
263
270
  @pytest.mark.anyio
264
271
  async def test_get_unconfirmed_for_wallet(seeded_random: random.Random) -> None:
265
272
  async with DBConnection(1) as db_wrapper:
266
- store = await WalletTransactionStore.create(db_wrapper)
273
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
267
274
 
268
275
  tr2 = dataclasses.replace(
269
276
  tr1, name=bytes32.random(seeded_random), confirmed=True, confirmed_at_height=uint32(100)
@@ -282,7 +289,7 @@ async def test_get_unconfirmed_for_wallet(seeded_random: random.Random) -> None:
282
289
  @pytest.mark.anyio
283
290
  async def test_transaction_count_for_wallet(seeded_random: random.Random) -> None:
284
291
  async with DBConnection(1) as db_wrapper:
285
- store = await WalletTransactionStore.create(db_wrapper)
292
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
286
293
 
287
294
  tr2 = dataclasses.replace(tr1, name=bytes32.random(seeded_random), wallet_id=uint32(2))
288
295
 
@@ -322,7 +329,7 @@ async def test_transaction_count_for_wallet(seeded_random: random.Random) -> Non
322
329
  @pytest.mark.anyio
323
330
  async def test_all_transactions_for_wallet(seeded_random: random.Random) -> None:
324
331
  async with DBConnection(1) as db_wrapper:
325
- store = await WalletTransactionStore.create(db_wrapper)
332
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
326
333
 
327
334
  test_trs: list[TransactionRecord] = []
328
335
  for wallet_id in [1, 2]:
@@ -373,7 +380,7 @@ def cmp(lhs: list[Any], rhs: list[Any]) -> bool:
373
380
  @pytest.mark.anyio
374
381
  async def test_get_all_transactions(seeded_random: random.Random) -> None:
375
382
  async with DBConnection(1) as db_wrapper:
376
- store = await WalletTransactionStore.create(db_wrapper)
383
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
377
384
 
378
385
  test_trs: list[TransactionRecord] = []
379
386
  assert await store.get_all_transactions() == []
@@ -390,7 +397,7 @@ async def test_get_all_transactions(seeded_random: random.Random) -> None:
390
397
  @pytest.mark.anyio
391
398
  async def test_get_transaction_above(seeded_random: random.Random) -> None:
392
399
  async with DBConnection(1) as db_wrapper:
393
- store = await WalletTransactionStore.create(db_wrapper)
400
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
394
401
 
395
402
  test_trs: list[TransactionRecord] = []
396
403
  assert await store.get_transaction_above(uint32(0)) == []
@@ -410,7 +417,7 @@ async def test_get_transaction_above(seeded_random: random.Random) -> None:
410
417
  @pytest.mark.anyio
411
418
  async def test_get_tx_by_trade_id(seeded_random: random.Random) -> None:
412
419
  async with DBConnection(1) as db_wrapper:
413
- store = await WalletTransactionStore.create(db_wrapper)
420
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
414
421
 
415
422
  tr2 = dataclasses.replace(tr1, name=bytes32.random(seeded_random), trade_id=bytes32.random(seeded_random))
416
423
  tr3 = dataclasses.replace(tr1, name=bytes32.random(seeded_random), trade_id=bytes32.random(seeded_random))
@@ -442,7 +449,7 @@ async def test_get_tx_by_trade_id(seeded_random: random.Random) -> None:
442
449
  @pytest.mark.anyio
443
450
  async def test_rollback_to_block(seeded_random: random.Random) -> None:
444
451
  async with DBConnection(1) as db_wrapper:
445
- store = await WalletTransactionStore.create(db_wrapper)
452
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
446
453
 
447
454
  test_trs: list[TransactionRecord] = []
448
455
  for height in range(10):
@@ -465,7 +472,7 @@ async def test_rollback_to_block(seeded_random: random.Random) -> None:
465
472
  @pytest.mark.anyio
466
473
  async def test_delete_unconfirmed(seeded_random: random.Random) -> None:
467
474
  async with DBConnection(1) as db_wrapper:
468
- store = await WalletTransactionStore.create(db_wrapper)
475
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
469
476
 
470
477
  tr2 = dataclasses.replace(tr1, name=bytes32.random(seeded_random), confirmed=True)
471
478
  tr3 = dataclasses.replace(tr1, name=bytes32.random(seeded_random), confirmed=True, wallet_id=uint32(2))
@@ -493,7 +500,7 @@ async def test_delete_unconfirmed(seeded_random: random.Random) -> None:
493
500
  @pytest.mark.anyio
494
501
  async def test_get_transactions_between_confirmed(seeded_random: random.Random) -> None:
495
502
  async with DBConnection(1) as db_wrapper:
496
- store = await WalletTransactionStore.create(db_wrapper)
503
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
497
504
 
498
505
  tr2 = dataclasses.replace(
499
506
  tr1, name=bytes32.random(seeded_random), confirmed=True, confirmed_at_height=uint32(1)
@@ -585,7 +592,7 @@ async def test_get_transactions_between_confirmed(seeded_random: random.Random)
585
592
  @pytest.mark.anyio
586
593
  async def test_get_transactions_between_relevance(seeded_random: random.Random) -> None:
587
594
  async with DBConnection(1) as db_wrapper:
588
- store = await WalletTransactionStore.create(db_wrapper)
595
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
589
596
 
590
597
  t1 = dataclasses.replace(
591
598
  tr1,
@@ -716,22 +723,24 @@ async def test_get_transactions_between_relevance(seeded_random: random.Random)
716
723
  @pytest.mark.anyio
717
724
  async def test_get_transactions_between_to_puzzle_hash(seeded_random: random.Random) -> None:
718
725
  async with DBConnection(1) as db_wrapper:
719
- store = await WalletTransactionStore.create(db_wrapper)
726
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
720
727
 
721
728
  ph1 = bytes32.random(seeded_random)
729
+ ad1 = encode_puzzle_hash(ph1, "txch")
722
730
  ph2 = bytes32.random(seeded_random)
731
+ ad2 = encode_puzzle_hash(ph2, "txch")
723
732
 
724
733
  tr2 = dataclasses.replace(
725
- tr1, name=bytes32.random(seeded_random), confirmed_at_height=uint32(1), to_puzzle_hash=ph1
734
+ tr1, name=bytes32.random(seeded_random), confirmed_at_height=uint32(1), to_puzzle_hash=ph1, to_address=ad1
726
735
  )
727
736
  tr3 = dataclasses.replace(
728
- tr1, name=bytes32.random(seeded_random), confirmed_at_height=uint32(2), to_puzzle_hash=ph1
737
+ tr1, name=bytes32.random(seeded_random), confirmed_at_height=uint32(2), to_puzzle_hash=ph1, to_address=ad1
729
738
  )
730
739
  tr4 = dataclasses.replace(
731
- tr1, name=bytes32.random(seeded_random), confirmed_at_height=uint32(3), to_puzzle_hash=ph2
740
+ tr1, name=bytes32.random(seeded_random), confirmed_at_height=uint32(3), to_puzzle_hash=ph2, to_address=ad2
732
741
  )
733
742
  tr5 = dataclasses.replace(
734
- tr1, name=bytes32.random(seeded_random), confirmed_at_height=uint32(4), to_puzzle_hash=ph2
743
+ tr1, name=bytes32.random(seeded_random), confirmed_at_height=uint32(4), to_puzzle_hash=ph2, to_address=ad2
735
744
  )
736
745
 
737
746
  await store.add_transaction_record(tr1)
@@ -762,7 +771,7 @@ async def test_get_transactions_between_to_puzzle_hash(seeded_random: random.Ran
762
771
  @pytest.mark.anyio
763
772
  async def test_get_not_sent(seeded_random: random.Random) -> None:
764
773
  async with DBConnection(1) as db_wrapper:
765
- store = await WalletTransactionStore.create(db_wrapper)
774
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
766
775
 
767
776
  tr2 = dataclasses.replace(
768
777
  tr1, name=bytes32.random(seeded_random), confirmed=True, confirmed_at_height=uint32(1)
@@ -859,7 +868,7 @@ async def test_valid_times_migration() -> None:
859
868
  trade_id=None,
860
869
  type=uint32(TransactionType.INCOMING_TX.value),
861
870
  name=bytes32.zeros,
862
- memos=[],
871
+ memos={},
863
872
  )
864
873
 
865
874
  async with db_wrapper.writer_maybe_transaction() as conn:
@@ -881,7 +890,7 @@ async def test_valid_times_migration() -> None:
881
890
  ),
882
891
  )
883
892
 
884
- store = await WalletTransactionStore.create(db_wrapper)
893
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
885
894
  rec = await store.get_transaction_record(old_record.name)
886
895
  assert rec is not None
887
896
  assert rec.valid_times == ConditionValidTimes()
@@ -890,7 +899,7 @@ async def test_valid_times_migration() -> None:
890
899
  @pytest.mark.anyio
891
900
  async def test_large_tx_record_query() -> None:
892
901
  async with DBConnection(1) as db_wrapper:
893
- store = await WalletTransactionStore.create(db_wrapper)
902
+ store = await WalletTransactionStore.create(db_wrapper, MINIMUM_CONFIG)
894
903
  tx_records_to_insert = []
895
904
  for _ in range(db_wrapper.host_parameter_limit + 1):
896
905
  name = bytes32.random()
@@ -910,7 +919,7 @@ async def test_large_tx_record_query() -> None:
910
919
  trade_id=None,
911
920
  type=uint32(TransactionType.INCOMING_TX.value),
912
921
  name=name,
913
- memos=[],
922
+ memos={},
914
923
  )
915
924
  tx_records_to_insert.append(
916
925
  (
@@ -19,6 +19,7 @@ from chia.types.blockchain_format.program import Program
19
19
  from chia.types.peer_info import PeerInfo
20
20
  from chia.types.signing_mode import CHIP_0002_SIGN_MESSAGE_PREFIX
21
21
  from chia.util.bech32m import encode_puzzle_hash
22
+ from chia.util.byte_types import hexstr_to_bytes
22
23
  from chia.util.errors import Err
23
24
  from chia.wallet.conditions import ConditionValidTimes
24
25
  from chia.wallet.derive_keys import master_sk_to_wallet_sk
@@ -395,9 +396,7 @@ class TestWalletSimulator:
395
396
  assert len(txs["transactions"]) == 1
396
397
  assert not txs["transactions"][0]["confirmed"]
397
398
  assert txs["transactions"][0]["metadata"]["recipient_puzzle_hash"][2:] == normal_puzhash.hex()
398
- assert txs["transactions"][0]["metadata"]["coin_id"] == merkle_coin.name().hex()
399
- with pytest.raises(ValueError):
400
- await api_0.spend_clawback_coins({})
399
+ assert txs["transactions"][0]["metadata"]["coin_id"] == "0x" + merkle_coin.name().hex()
401
400
 
402
401
  test_fee = 10
403
402
  resp = await api_0.spend_clawback_coins(
@@ -407,7 +406,6 @@ class TestWalletSimulator:
407
406
  **wallet_environments.tx_config.to_json_dict(),
408
407
  }
409
408
  )
410
- assert resp["success"]
411
409
  assert len(resp["transaction_ids"]) == 1
412
410
 
413
411
  await wallet_environments.process_pending_states(
@@ -540,7 +538,6 @@ class TestWalletSimulator:
540
538
  **wallet_environments.tx_config.to_json_dict(),
541
539
  }
542
540
  )
543
- assert resp["success"]
544
541
  assert len(resp["transaction_ids"]) == 1
545
542
  # Wait mempool update
546
543
  await wallet_environments.process_pending_states(
@@ -587,7 +584,7 @@ class TestWalletSimulator:
587
584
  assert txs["transactions"][0]["confirmed"]
588
585
  assert txs["transactions"][1]["confirmed"]
589
586
  assert txs["transactions"][0]["memos"] != txs["transactions"][1]["memos"]
590
- assert next(iter(txs["transactions"][0]["memos"].values())) == b"Test".hex()
587
+ assert "0x" + b"Test".hex() in next(iter(txs["transactions"][0]["memos"].values()))
591
588
 
592
589
  @pytest.mark.parametrize(
593
590
  "wallet_environments",
@@ -677,7 +674,6 @@ class TestWalletSimulator:
677
674
  **wallet_environments.tx_config.to_json_dict(),
678
675
  }
679
676
  )
680
- assert resp["success"]
681
677
  assert len(resp["transaction_ids"]) == 1
682
678
 
683
679
  await wallet_environments.process_pending_states(
@@ -1093,10 +1089,8 @@ class TestWalletSimulator:
1093
1089
  await time_out_assert(20, wsm_2.coin_store.count_small_unspent, 1, 1000, CoinType.CLAWBACK)
1094
1090
  # clawback merkle coin
1095
1091
  resp = await api_1.spend_clawback_coins({"coin_ids": [clawback_coin_id_1.hex()], "fee": 0})
1096
- assert resp["success"]
1097
1092
  assert len(resp["transaction_ids"]) == 1
1098
1093
  resp = await api_1.spend_clawback_coins({"coin_ids": [clawback_coin_id_2.hex()], "fee": 0})
1099
- assert resp["success"]
1100
1094
  assert len(resp["transaction_ids"]) == 1
1101
1095
 
1102
1096
  await wallet_environments.process_pending_states(
@@ -1542,9 +1536,9 @@ class TestWalletSimulator:
1542
1536
  fees = estimate_fees(tx.spend_bundle)
1543
1537
  assert fees == tx_fee
1544
1538
 
1545
- memos = await env_0.rpc_client.get_transaction_memo(GetTransactionMemo(transaction_id=tx.name))
1546
- assert len(memos.coins_with_memos) == 1
1547
- assert memos.coins_with_memos[0].memos[0] == ph_2
1539
+ memo_response = await env_0.rpc_client.get_transaction_memo(GetTransactionMemo(transaction_id=tx.name))
1540
+ assert len(memo_response.memo_dict) == 1
1541
+ assert next(iter(memo_response.memo_dict.values()))[0] == ph_2
1548
1542
 
1549
1543
  await wallet_environments.process_pending_states(
1550
1544
  [
@@ -1589,13 +1583,9 @@ class TestWalletSimulator:
1589
1583
  if coin.amount == tx_amount:
1590
1584
  tx_id = coin.name()
1591
1585
  assert tx_id is not None
1592
- memos = await env_1.rpc_client.get_transaction_memo(GetTransactionMemo(transaction_id=tx_id))
1593
- assert len(memos.coins_with_memos) == 1
1594
- assert memos.coins_with_memos[0].memos[0] == ph_2
1595
- # test json serialization
1596
- assert memos.to_json_dict() == {
1597
- tx_id.hex(): {memos.coins_with_memos[0].coin_id.hex(): [memos.coins_with_memos[0].memos[0].hex()]}
1598
- }
1586
+ memo_response = await env_1.rpc_client.get_transaction_memo(GetTransactionMemo(transaction_id=tx_id))
1587
+ assert len(memo_response.memo_dict) == 1
1588
+ assert next(iter(memo_response.memo_dict.values()))[0] == ph_2
1599
1589
 
1600
1590
  @pytest.mark.parametrize(
1601
1591
  "wallet_environments",
@@ -1721,6 +1711,7 @@ class TestWalletSimulator:
1721
1711
  confirmed_at_height=uint32(0),
1722
1712
  created_at_time=uint64(0),
1723
1713
  to_puzzle_hash=bytes32(32 * b"0"),
1714
+ to_address=encode_puzzle_hash(bytes32(32 * b"0"), "txch"),
1724
1715
  amount=uint64(0),
1725
1716
  fee_amount=uint64(0),
1726
1717
  confirmed=False,
@@ -1733,7 +1724,7 @@ class TestWalletSimulator:
1733
1724
  trade_id=None,
1734
1725
  type=uint32(TransactionType.OUTGOING_TX.value),
1735
1726
  name=name,
1736
- memos=[],
1727
+ memos={},
1737
1728
  valid_times=ConditionValidTimes(),
1738
1729
  )
1739
1730
  [stolen_tx] = await wallet.wallet_state_manager.add_pending_transactions([stolen_tx])
@@ -2011,9 +2002,9 @@ class TestWalletSimulator:
2011
2002
  puzzle: Program = Program.to((CHIP_0002_SIGN_MESSAGE_PREFIX, message))
2012
2003
 
2013
2004
  assert AugSchemeMPL.verify(
2014
- G1Element.from_bytes(bytes.fromhex(response["pubkey"])),
2005
+ G1Element.from_bytes(hexstr_to_bytes(response["pubkey"])),
2015
2006
  puzzle.get_tree_hash(),
2016
- G2Element.from_bytes(bytes.fromhex(response["signature"])),
2007
+ G2Element.from_bytes(hexstr_to_bytes(response["signature"])),
2017
2008
  )
2018
2009
  # Test hex string
2019
2010
  message = "0123456789ABCDEF"
@@ -2023,9 +2014,9 @@ class TestWalletSimulator:
2023
2014
  puzzle = Program.to((CHIP_0002_SIGN_MESSAGE_PREFIX, bytes.fromhex(message)))
2024
2015
 
2025
2016
  assert AugSchemeMPL.verify(
2026
- G1Element.from_bytes(bytes.fromhex(response["pubkey"])),
2017
+ G1Element.from_bytes(hexstr_to_bytes(response["pubkey"])),
2027
2018
  puzzle.get_tree_hash(),
2028
- G2Element.from_bytes(bytes.fromhex(response["signature"])),
2019
+ G2Element.from_bytes(hexstr_to_bytes(response["signature"])),
2029
2020
  )
2030
2021
  # Test informal input
2031
2022
  message = "0123456789ABCDEF"
@@ -2035,9 +2026,9 @@ class TestWalletSimulator:
2035
2026
  puzzle = Program.to((CHIP_0002_SIGN_MESSAGE_PREFIX, bytes.fromhex(message)))
2036
2027
 
2037
2028
  assert AugSchemeMPL.verify(
2038
- G1Element.from_bytes(bytes.fromhex(response["pubkey"])),
2029
+ G1Element.from_bytes(hexstr_to_bytes(response["pubkey"])),
2039
2030
  puzzle.get_tree_hash(),
2040
- G2Element.from_bytes(bytes.fromhex(response["signature"])),
2031
+ G2Element.from_bytes(hexstr_to_bytes(response["signature"])),
2041
2032
  )
2042
2033
  # Test BLS sign string
2043
2034
  message = "Hello World"
@@ -2046,9 +2037,9 @@ class TestWalletSimulator:
2046
2037
  )
2047
2038
 
2048
2039
  assert AugSchemeMPL.verify(
2049
- G1Element.from_bytes(bytes.fromhex(response["pubkey"])),
2040
+ G1Element.from_bytes(hexstr_to_bytes(response["pubkey"])),
2050
2041
  bytes(message, "utf-8"),
2051
- G2Element.from_bytes(bytes.fromhex(response["signature"])),
2042
+ G2Element.from_bytes(hexstr_to_bytes(response["signature"])),
2052
2043
  )
2053
2044
  # Test BLS sign hex
2054
2045
  message = "0123456789ABCDEF"
@@ -2057,9 +2048,9 @@ class TestWalletSimulator:
2057
2048
  )
2058
2049
 
2059
2050
  assert AugSchemeMPL.verify(
2060
- G1Element.from_bytes(bytes.fromhex(response["pubkey"])),
2061
- bytes.fromhex(message),
2062
- G2Element.from_bytes(bytes.fromhex(response["signature"])),
2051
+ G1Element.from_bytes(hexstr_to_bytes(response["pubkey"])),
2052
+ hexstr_to_bytes(message),
2053
+ G2Element.from_bytes(hexstr_to_bytes(response["signature"])),
2063
2054
  )
2064
2055
 
2065
2056
  @pytest.mark.parametrize(
@@ -21,7 +21,7 @@ from chia.wallet.derive_keys import master_sk_to_wallet_sk, master_sk_to_wallet_
21
21
  from chia.wallet.transaction_record import TransactionRecord
22
22
  from chia.wallet.util.transaction_type import TransactionType
23
23
  from chia.wallet.util.wallet_types import WalletType
24
- from chia.wallet.wallet_request_types import PushTransactions
24
+ from chia.wallet.wallet_request_types import ExtendDerivationIndex, PushTransactions
25
25
  from chia.wallet.wallet_rpc_api import MAX_DERIVATION_INDEX_DELTA
26
26
  from chia.wallet.wallet_spend_bundle import WalletSpendBundle
27
27
  from chia.wallet.wallet_state_manager import WalletStateManager
@@ -286,6 +286,11 @@ async def test_puzzle_hash_requests(wallet_environments: WalletTestFramework) ->
286
286
 
287
287
  expected_state = await get_puzzle_hash_state()
288
288
 
289
+ # Quick test of this RPC
290
+ assert (
291
+ await wallet_environments.environments[0].rpc_client.get_current_derivation_index()
292
+ ).index == expected_state.highest_index
293
+
289
294
  # `create_more_puzzle_hashes`
290
295
  # No-op
291
296
  result = await wsm.create_more_puzzle_hashes()
@@ -420,7 +425,7 @@ async def test_puzzle_hash_requests(wallet_environments: WalletTestFramework) ->
420
425
  (0,),
421
426
  )
422
427
  with pytest.raises(ValueError):
423
- await rpc_client.extend_derivation_index(0)
428
+ await rpc_client.extend_derivation_index(ExtendDerivationIndex(uint32(0)))
424
429
 
425
430
  # Reset to a normal state
426
431
  await wsm.puzzle_store.delete_wallet(wsm.main_wallet.id())
@@ -431,15 +436,17 @@ async def test_puzzle_hash_requests(wallet_environments: WalletTestFramework) ->
431
436
 
432
437
  # Test an index already created
433
438
  with pytest.raises(ValueError):
434
- await rpc_client.extend_derivation_index(0)
439
+ await rpc_client.extend_derivation_index(ExtendDerivationIndex(uint32(0)))
435
440
 
436
441
  # Test an index too far in the future
437
442
  with pytest.raises(ValueError):
438
- await rpc_client.extend_derivation_index(MAX_DERIVATION_INDEX_DELTA + expected_state.highest_index + 1)
443
+ await rpc_client.extend_derivation_index(
444
+ ExtendDerivationIndex(uint32(MAX_DERIVATION_INDEX_DELTA + expected_state.highest_index + 1))
445
+ )
439
446
 
440
447
  # Test the actual functionality
441
- assert await rpc_client.extend_derivation_index(expected_state.highest_index + 5) == str(
442
- expected_state.highest_index + 5
443
- )
448
+ assert (
449
+ await rpc_client.extend_derivation_index(ExtendDerivationIndex(uint32(expected_state.highest_index + 5)))
450
+ ).index == expected_state.highest_index + 5
444
451
  expected_state = PuzzleHashState(expected_state.highest_index + 5, expected_state.used_up_to_index)
445
452
  assert await get_puzzle_hash_state() == expected_state