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.
- chia/_tests/blockchain/blockchain_test_utils.py +6 -7
- chia/_tests/blockchain/test_augmented_chain.py +4 -3
- chia/_tests/blockchain/test_blockchain.py +10 -5
- chia/_tests/clvm/coin_store.py +1 -1
- chia/_tests/cmds/cmd_test_utils.py +84 -97
- chia/_tests/cmds/test_dev_gh.py +1 -1
- chia/_tests/cmds/test_farm_cmd.py +56 -2
- chia/_tests/cmds/wallet/test_consts.py +3 -1
- chia/_tests/cmds/wallet/test_did.py +3 -8
- chia/_tests/cmds/wallet/test_nft.py +6 -6
- chia/_tests/cmds/wallet/test_notifications.py +39 -21
- chia/_tests/cmds/wallet/test_vcs.py +2 -1
- chia/_tests/cmds/wallet/test_wallet.py +160 -136
- chia/_tests/conftest.py +51 -26
- chia/_tests/core/cmds/test_wallet.py +4 -3
- chia/_tests/core/consensus/test_pot_iterations.py +71 -24
- chia/_tests/core/custom_types/test_proof_of_space.py +60 -30
- chia/_tests/core/custom_types/test_spend_bundle.py +1 -4
- chia/_tests/core/data_layer/conftest.py +7 -2
- chia/_tests/core/data_layer/old_format/__init__.py +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-005876c1cdc4d5f1726551b207b9f63efc9cd2f72df80a3a26a1ba73d40d6745-delta-23-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-005876c1cdc4d5f1726551b207b9f63efc9cd2f72df80a3a26a1ba73d40d6745-full-23-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-01b36e72a975cdc00d6514eea81668d19e8ea3150217ae98cb3361688a016fab-delta-9-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-01b36e72a975cdc00d6514eea81668d19e8ea3150217ae98cb3361688a016fab-full-9-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-06147c3b12d73e9b83b686a8c10b4a36a513c8a93c0ff99ae197f06326278be9-delta-5-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-06147c3b12d73e9b83b686a8c10b4a36a513c8a93c0ff99ae197f06326278be9-full-5-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-073c051a5934ad3b8db39eee2189e4300e55f48aaa17ff4ae30eeae088ff544a-delta-22-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-073c051a5934ad3b8db39eee2189e4300e55f48aaa17ff4ae30eeae088ff544a-full-22-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-0cc077559b9c7b4aefe8f8f591c195e0779bebdf89f2ad8285a00ea5f859d965-delta-1-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-0cc077559b9c7b4aefe8f8f591c195e0779bebdf89f2ad8285a00ea5f859d965-full-1-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-16377275567b723b20936d3f1ec0a2fd83f6ac379b922351a5e4c54949069f3b-delta-2-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-16377275567b723b20936d3f1ec0a2fd83f6ac379b922351a5e4c54949069f3b-full-2-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-1cb824a7a5f02cd30ac6c38e8f6216780d9bfa2d24811d282a368dcd541438a7-delta-29-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-1cb824a7a5f02cd30ac6c38e8f6216780d9bfa2d24811d282a368dcd541438a7-full-29-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-27b89dc4809ebc5a3b87757d35e95e2761d978cf121e44fa2773a5c06e4cc7b5-delta-28-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-27b89dc4809ebc5a3b87757d35e95e2761d978cf121e44fa2773a5c06e4cc7b5-full-28-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-28a6b7c134abfaeb0ab58a018313f6c87a61a40a4d9ec9bedf53aa1d12f3ee37-delta-7-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-28a6b7c134abfaeb0ab58a018313f6c87a61a40a4d9ec9bedf53aa1d12f3ee37-full-7-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-30a6bfe7cecbeda259a295dc6de3a436357f52388c3b03d86901e7da68565aeb-delta-19-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-30a6bfe7cecbeda259a295dc6de3a436357f52388c3b03d86901e7da68565aeb-full-19-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-343a2bf9add798e3ac2e6a571823cf9fa7e8a1bed532143354ead2648bd036ef-delta-10-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-343a2bf9add798e3ac2e6a571823cf9fa7e8a1bed532143354ead2648bd036ef-full-10-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4d90efbc1fb3df324193831ea4a57dd5e10e67d9653343eb18d178272adb0447-delta-17-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4d90efbc1fb3df324193831ea4a57dd5e10e67d9653343eb18d178272adb0447-full-17-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4dd2ea099e91635c441f40b36d3f84078a2d818d2dc601c7278e72cbdfe3eca8-delta-20-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-4dd2ea099e91635c441f40b36d3f84078a2d818d2dc601c7278e72cbdfe3eca8-full-20-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-509effbdca78639023b933ce6c08a0465fb247e1cd5329e9e9c553940e4b6e46-delta-31-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-509effbdca78639023b933ce6c08a0465fb247e1cd5329e9e9c553940e4b6e46-full-31-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5379a4d9ff29c29d1ef0906d22e82c52472753d31806189ab813c43365341b78-delta-40-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5379a4d9ff29c29d1ef0906d22e82c52472753d31806189ab813c43365341b78-full-40-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-55908eda5686a8f89e4c50672cbe893ec1734fb23449dc03325efe7c414f9aa4-delta-49-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-55908eda5686a8f89e4c50672cbe893ec1734fb23449dc03325efe7c414f9aa4-full-49-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-57cc2691fb1fb986c99a58bcb0e029d0cd0cff41553d703147c54196d7d9ca63-delta-14-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-57cc2691fb1fb986c99a58bcb0e029d0cd0cff41553d703147c54196d7d9ca63-full-14-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5943bf8ae4f5e59969d8570e4f40a8223299febdcfbcf188b3b3e2ab11044e18-delta-34-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-5943bf8ae4f5e59969d8570e4f40a8223299febdcfbcf188b3b3e2ab11044e18-full-34-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6518527b7c939bee60ce6b024cbe90d3b9d8913c56b8ce11a4df5da7ff7db1c8-delta-8-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6518527b7c939bee60ce6b024cbe90d3b9d8913c56b8ce11a4df5da7ff7db1c8-full-8-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-66ff26a26620379e14a7c91252d27ee4dbe06ad69a3a390a88642fe757f2b288-delta-45-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-66ff26a26620379e14a7c91252d27ee4dbe06ad69a3a390a88642fe757f2b288-full-45-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6bd0a508ee2c4afbe9d4daa811139fd6e54e7f4e16850cbce999fa30f8bdccd2-delta-6-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6bd0a508ee2c4afbe9d4daa811139fd6e54e7f4e16850cbce999fa30f8bdccd2-full-6-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6ce850d0d77ca743fcc2fc792747472e5d2c1c0813aa43abbb370554428fc897-delta-48-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6ce850d0d77ca743fcc2fc792747472e5d2c1c0813aa43abbb370554428fc897-full-48-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6eb4ca2e1552b156c5969396b49070eb08ad6c96b347359387519be59f7ccaed-delta-26-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-6eb4ca2e1552b156c5969396b49070eb08ad6c96b347359387519be59f7ccaed-full-26-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-71c797fb7592d3f0a5a20c79ab8497ddaa0fd9ec17712e109d25c91b3f3c76e5-delta-3-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-71c797fb7592d3f0a5a20c79ab8497ddaa0fd9ec17712e109d25c91b3f3c76e5-full-3-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-73357026053d5a4969e7a6b9aeeef91c14cc6d5f32fc700fe6d21d2a1b22496c-delta-25-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-73357026053d5a4969e7a6b9aeeef91c14cc6d5f32fc700fe6d21d2a1b22496c-full-25-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-7c897e5c46e834ced65bde7de87716acfaa5dffbdb30b5cd9377d8c319df2034-delta-35-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-7c897e5c46e834ced65bde7de87716acfaa5dffbdb30b5cd9377d8c319df2034-full-35-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-87b8394d80d08117a5a1cd04ed8a682564eab7197a2c090159863591b5108874-delta-4-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-87b8394d80d08117a5a1cd04ed8a682564eab7197a2c090159863591b5108874-full-4-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-89eb40b9cc0921c5f5c3feb20927c13a9ada5760f82d219dcee153b7d400165c-delta-41-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-89eb40b9cc0921c5f5c3feb20927c13a9ada5760f82d219dcee153b7d400165c-full-41-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8b649433156b8c924436cdec9c6de26106fd6f73a0528570f48748f7b40d7f8a-delta-21-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8b649433156b8c924436cdec9c6de26106fd6f73a0528570f48748f7b40d7f8a-full-21-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8d364023a0834c8c3077e236a465493acbf488e4f9d1f4c6cc230343c10a8f7d-delta-42-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-8d364023a0834c8c3077e236a465493acbf488e4f9d1f4c6cc230343c10a8f7d-full-42-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-925689e24a3d98d98676d816cdd8b73e7b2df057d9d4503da9b27bf91d79666c-delta-38-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-925689e24a3d98d98676d816cdd8b73e7b2df057d9d4503da9b27bf91d79666c-full-38-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-937be3d428b19f521be4f98faecc3307ae11ee731c76992f417fa4268d13859e-delta-11-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-937be3d428b19f521be4f98faecc3307ae11ee731c76992f417fa4268d13859e-full-11-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-97f34af499b79e2111fc296a598fc9654c2467ea038dfea41fd58241fb3642de-delta-32-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-97f34af499b79e2111fc296a598fc9654c2467ea038dfea41fd58241fb3642de-full-32-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-9d1b737243b8a1d0022f2b36ac53333c6280354a74d77f2a3642dcab35204e59-delta-33-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-9d1b737243b8a1d0022f2b36ac53333c6280354a74d77f2a3642dcab35204e59-full-33-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-a6663f98ef6ddf6db55f01163e34bb2e87aa82f0347e79ce31e8dbfa390c480c-delta-47-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-a6663f98ef6ddf6db55f01163e34bb2e87aa82f0347e79ce31e8dbfa390c480c-full-47-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-aa77376d1ccd3664e5c6366e010c52a978fedbf40f5ce262fee71b2e7fe0c6a9-delta-50-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-aa77376d1ccd3664e5c6366e010c52a978fedbf40f5ce262fee71b2e7fe0c6a9-full-50-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b0f28514741ed1a71f5c6544bf92f9e0e493c5f3cf28328909771d8404eff626-delta-24-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b0f28514741ed1a71f5c6544bf92f9e0e493c5f3cf28328909771d8404eff626-full-24-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b3efee5358e6eb89ab3b60db2d128d57eef39e8538fb63c5632412d4f8e7d09e-delta-44-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-b3efee5358e6eb89ab3b60db2d128d57eef39e8538fb63c5632412d4f8e7d09e-full-44-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bb0b56b6eb7acbb4e80893b04c72412fe833418232e1ed7b06d97d7a7f08b4e1-delta-16-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bb0b56b6eb7acbb4e80893b04c72412fe833418232e1ed7b06d97d7a7f08b4e1-full-16-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bc45262b757ff494b53bd2a8fba0f5511cc1f9c2a2c5360e04ea8cebbf6409df-delta-13-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bc45262b757ff494b53bd2a8fba0f5511cc1f9c2a2c5360e04ea8cebbf6409df-full-13-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bd0494ba430aff13458b557113b073d226eaf11257dfe26ff3323fa1cfe1335b-delta-39-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-bd0494ba430aff13458b557113b073d226eaf11257dfe26ff3323fa1cfe1335b-full-39-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cd04f5fbba1553fa728b4dd8131d4723aaac288e0c7dc080447fbf0872c0a6eb-delta-36-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cd04f5fbba1553fa728b4dd8131d4723aaac288e0c7dc080447fbf0872c0a6eb-full-36-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cdd2399557fb3163a848f08831fdc833703354edb19a0d32a965fdb140f160c2-delta-18-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cdd2399557fb3163a848f08831fdc833703354edb19a0d32a965fdb140f160c2-full-18-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cf7a08fca7b1332095242e4d9800f4b94a3f4eaae88fe8407da42736d54b9e18-delta-37-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-cf7a08fca7b1332095242e4d9800f4b94a3f4eaae88fe8407da42736d54b9e18-full-37-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-d1f97465a9f52187e2ef3a0d811a1258f52380a65340c55f3e8e65b92753bc13-delta-15-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-d1f97465a9f52187e2ef3a0d811a1258f52380a65340c55f3e8e65b92753bc13-full-15-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e475eccd4ee597e5ff67b1a249e37d65d6e3f754c3f0379fdb43692513588fef-delta-46-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e475eccd4ee597e5ff67b1a249e37d65d6e3f754c3f0379fdb43692513588fef-full-46-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e82e63517d78fd65b23a05c3b9a98cf905ddad7026995a238bfe634006b84cd0-delta-27-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-e82e63517d78fd65b23a05c3b9a98cf905ddad7026995a238bfe634006b84cd0-full-27-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-ed2cf0fd6c0f6237c87c161e1fca303b3fbe6c04e01f652b88720b4572143349-delta-12-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-ed2cf0fd6c0f6237c87c161e1fca303b3fbe6c04e01f652b88720b4572143349-full-12-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f6e454eaf24a83c46a7bed4c19260a0a3ce0ed5c51739cb6d748d4913dc2ef58-delta-30-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f6e454eaf24a83c46a7bed4c19260a0a3ce0ed5c51739cb6d748d4913dc2ef58-full-30-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f7ad2bdf86d9609b4d6381086ec1e296bf558e2ff467ead29dd7fa6e31bacc56-delta-43-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e612073746f7265206964-f7ad2bdf86d9609b4d6381086ec1e296bf558e2ff467ead29dd7fa6e31bacc56-full-43-v1.0.dat +0 -0
- chia/_tests/core/data_layer/old_format/files/__init__.py +0 -0
- chia/_tests/core/data_layer/old_format/old_db.sqlite +0 -0
- chia/_tests/core/data_layer/test_data_layer_util.py +18 -21
- chia/_tests/core/data_layer/test_data_rpc.py +77 -28
- chia/_tests/core/data_layer/test_data_store.py +637 -700
- chia/_tests/core/data_layer/test_data_store_schema.py +2 -209
- chia/_tests/core/full_node/ram_db.py +1 -1
- chia/_tests/core/full_node/stores/test_block_store.py +4 -10
- chia/_tests/core/full_node/stores/test_coin_store.py +1 -1
- chia/_tests/core/full_node/test_address_manager.py +3 -3
- chia/_tests/core/full_node/test_block_height_map.py +1 -1
- chia/_tests/core/full_node/test_full_node.py +91 -30
- chia/_tests/core/full_node/test_generator_tools.py +17 -10
- chia/_tests/core/mempool/test_mempool.py +190 -90
- chia/_tests/core/mempool/test_mempool_fee_estimator.py +2 -4
- chia/_tests/core/mempool/test_mempool_item_queries.py +1 -1
- chia/_tests/core/mempool/test_mempool_manager.py +252 -77
- chia/_tests/core/mempool/test_singleton_fast_forward.py +9 -27
- chia/_tests/core/server/serve.py +0 -2
- chia/_tests/core/server/test_rate_limits.py +400 -347
- chia/_tests/core/server/test_server.py +2 -2
- chia/_tests/core/services/test_services.py +7 -7
- chia/_tests/core/test_cost_calculation.py +31 -10
- chia/_tests/core/test_crawler.py +4 -4
- chia/_tests/core/test_db_conversion.py +7 -14
- chia/_tests/core/test_db_validation.py +2 -6
- chia/_tests/core/test_farmer_harvester_rpc.py +34 -1
- chia/_tests/core/test_full_node_rpc.py +28 -24
- chia/_tests/core/test_merkle_set.py +1 -4
- chia/_tests/core/test_seeder.py +1 -1
- chia/_tests/core/util/test_keychain.py +2 -2
- chia/_tests/core/util/test_lru_cache.py +16 -0
- chia/_tests/core/util/test_streamable.py +85 -4
- chia/_tests/environments/wallet.py +4 -1
- chia/_tests/farmer_harvester/test_farmer.py +8 -6
- chia/_tests/farmer_harvester/test_farmer_harvester.py +306 -8
- chia/_tests/farmer_harvester/test_filter_prefix_bits.py +3 -3
- chia/_tests/farmer_harvester/test_third_party_harvesters.py +11 -11
- chia/_tests/fee_estimation/test_fee_estimation_integration.py +2 -2
- chia/_tests/fee_estimation/test_fee_estimation_rpc.py +1 -1
- chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +1 -2
- chia/_tests/generator/test_rom.py +2 -1
- chia/_tests/harvester/__init__.py +0 -0
- chia/_tests/harvester/config.py +4 -0
- chia/_tests/harvester/test_harvester_api.py +157 -0
- chia/_tests/plot_sync/test_plot_sync.py +6 -3
- chia/_tests/plot_sync/test_receiver.py +16 -4
- chia/_tests/plot_sync/test_sender.py +8 -7
- chia/_tests/plot_sync/test_sync_simulated.py +15 -13
- chia/_tests/plot_sync/util.py +3 -2
- chia/_tests/plotting/test_plot_manager.py +21 -5
- chia/_tests/plotting/test_prover.py +106 -0
- chia/_tests/pools/test_pool_cmdline.py +7 -6
- chia/_tests/pools/test_pool_puzzles_lifecycle.py +10 -3
- chia/_tests/pools/test_pool_rpc.py +92 -64
- chia/_tests/solver/__init__.py +0 -0
- chia/_tests/solver/config.py +4 -0
- chia/_tests/solver/test_solver_service.py +29 -0
- chia/_tests/timelord/test_new_peak.py +1 -1
- chia/_tests/timelord/test_timelord.py +1 -1
- chia/_tests/util/benchmarks.py +5 -12
- chia/_tests/util/blockchain.py +1 -1
- chia/_tests/util/build_network_protocol_files.py +7 -0
- chia/_tests/util/network_protocol_data.py +26 -0
- chia/_tests/util/protocol_messages_bytes-v1.0 +0 -0
- chia/_tests/util/protocol_messages_json.py +19 -0
- chia/_tests/util/setup_nodes.py +21 -2
- chia/_tests/util/spend_sim.py +9 -3
- chia/_tests/util/test_condition_tools.py +3 -2
- chia/_tests/util/test_full_block_utils.py +10 -9
- chia/_tests/util/test_misc.py +10 -10
- chia/_tests/util/test_network.py +32 -1
- chia/_tests/util/test_network_protocol_files.py +333 -318
- chia/_tests/util/test_network_protocol_json.py +6 -0
- chia/_tests/util/test_network_protocol_test.py +27 -0
- chia/_tests/util/test_priority_mutex.py +1 -1
- chia/_tests/util/test_replace_str_to_bytes.py +6 -6
- chia/_tests/wallet/cat_wallet/test_cat_wallet.py +17 -13
- chia/_tests/wallet/cat_wallet/test_trades.py +55 -55
- chia/_tests/wallet/did_wallet/test_did.py +118 -1229
- chia/_tests/wallet/nft_wallet/config.py +1 -1
- chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +73 -96
- chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +15 -12
- chia/_tests/wallet/nft_wallet/test_nft_offers.py +67 -134
- chia/_tests/wallet/nft_wallet/test_nft_wallet.py +31 -26
- chia/_tests/wallet/rpc/test_wallet_rpc.py +765 -371
- chia/_tests/wallet/sync/test_wallet_sync.py +6 -0
- chia/_tests/wallet/test_new_wallet_protocol.py +1 -1
- chia/_tests/wallet/test_signer_protocol.py +2 -2
- chia/_tests/wallet/test_singleton_lifecycle_fast.py +3 -4
- chia/_tests/wallet/test_transaction_store.py +42 -33
- chia/_tests/wallet/test_wallet.py +22 -31
- chia/_tests/wallet/test_wallet_state_manager.py +14 -7
- chia/_tests/wallet/vc_wallet/test_vc_wallet.py +53 -32
- chia/apis.py +2 -0
- chia/cmds/beta.py +7 -3
- chia/cmds/chia.py +2 -0
- chia/cmds/cmd_classes.py +11 -27
- chia/cmds/cmds_util.py +3 -0
- chia/cmds/coin_funcs.py +27 -22
- chia/cmds/configure.py +42 -18
- chia/cmds/dev/data.py +22 -3
- chia/cmds/farm.py +32 -0
- chia/cmds/farm_funcs.py +54 -5
- chia/cmds/init_funcs.py +4 -0
- chia/cmds/keys_funcs.py +8 -10
- chia/cmds/peer_funcs.py +8 -10
- chia/cmds/plotnft_funcs.py +24 -16
- chia/cmds/rpc.py +11 -1
- chia/cmds/show_funcs.py +5 -5
- chia/cmds/solver.py +33 -0
- chia/cmds/solver_funcs.py +21 -0
- chia/cmds/wallet.py +1 -1
- chia/cmds/wallet_funcs.py +149 -96
- chia/consensus/block_body_validation.py +8 -9
- chia/consensus/block_creation.py +9 -10
- chia/consensus/block_header_validation.py +61 -69
- chia/{full_node → consensus}/block_height_map.py +2 -1
- chia/consensus/block_height_map_protocol.py +21 -0
- chia/consensus/block_rewards.py +12 -12
- chia/consensus/blockchain.py +8 -18
- chia/consensus/default_constants.py +6 -6
- chia/consensus/generator_tools.py +1 -1
- chia/consensus/get_block_challenge.py +24 -25
- chia/consensus/pos_quality.py +28 -2
- chia/consensus/pot_iterations.py +15 -17
- chia/daemon/keychain_proxy.py +5 -0
- chia/daemon/server.py +2 -3
- chia/data_layer/data_layer.py +32 -24
- chia/data_layer/data_layer_errors.py +5 -0
- chia/data_layer/data_layer_rpc_api.py +1 -1
- chia/data_layer/data_layer_service.py +8 -0
- chia/data_layer/data_layer_util.py +49 -89
- chia/data_layer/data_layer_wallet.py +20 -17
- chia/data_layer/data_store.py +1051 -1462
- chia/data_layer/download_data.py +44 -115
- chia/{server → data_layer}/start_data_layer.py +2 -1
- chia/data_layer/util/benchmark.py +38 -53
- chia/farmer/farmer.py +3 -0
- chia/farmer/farmer_api.py +104 -5
- chia/farmer/farmer_rpc_api.py +20 -0
- chia/farmer/farmer_rpc_client.py +6 -2
- chia/farmer/farmer_service.py +8 -0
- chia/{server → farmer}/start_farmer.py +9 -3
- chia/full_node/block_store.py +20 -10
- chia/full_node/coin_store.py +12 -4
- chia/full_node/eligible_coin_spends.py +17 -72
- chia/full_node/full_node.py +68 -71
- chia/full_node/full_node_api.py +26 -32
- chia/full_node/full_node_rpc_api.py +44 -33
- chia/full_node/full_node_rpc_client.py +67 -79
- chia/full_node/full_node_service.py +8 -0
- chia/full_node/full_node_store.py +5 -3
- chia/full_node/mempool.py +15 -16
- chia/full_node/mempool_manager.py +73 -89
- chia/{server → full_node}/start_full_node.py +1 -1
- chia/full_node/subscriptions.py +2 -2
- chia/full_node/weight_proof.py +14 -15
- chia/harvester/harvester.py +8 -1
- chia/harvester/harvester_api.py +178 -44
- chia/harvester/harvester_service.py +8 -0
- chia/{server → harvester}/start_harvester.py +1 -1
- chia/introducer/introducer_service.py +8 -0
- chia/{server → introducer}/start_introducer.py +1 -1
- chia/plot_sync/receiver.py +6 -1
- chia/plot_sync/sender.py +7 -4
- chia/plotting/cache.py +37 -28
- chia/plotting/check_plots.py +83 -48
- chia/plotting/create_plots.py +3 -4
- chia/plotting/manager.py +18 -13
- chia/plotting/prover.py +153 -0
- chia/plotting/util.py +14 -6
- chia/pools/pool_wallet.py +6 -4
- chia/protocols/harvester_protocol.py +14 -0
- chia/protocols/outbound_message.py +1 -0
- chia/protocols/pool_protocol.py +1 -1
- chia/protocols/protocol_message_types.py +7 -0
- chia/protocols/shared_protocol.py +2 -0
- chia/protocols/solver_protocol.py +18 -0
- chia/rpc/rpc_server.py +1 -1
- chia/seeder/crawl_store.py +4 -8
- chia/seeder/crawler.py +2 -2
- chia/seeder/crawler_service.py +8 -0
- chia/seeder/start_crawler.py +1 -1
- chia/server/address_manager.py +12 -15
- chia/server/introducer_peers.py +1 -1
- chia/server/node_discovery.py +9 -10
- chia/server/rate_limit_numbers.py +157 -168
- chia/server/rate_limits.py +44 -41
- chia/server/resolve_peer_info.py +5 -0
- chia/server/server.py +17 -7
- chia/server/start_service.py +0 -1
- chia/simulator/block_tools.py +92 -58
- chia/simulator/full_node_simulator.py +1 -1
- chia/simulator/setup_services.py +52 -15
- chia/solver/__init__.py +0 -0
- chia/solver/solver.py +100 -0
- chia/solver/solver_api.py +59 -0
- chia/solver/solver_rpc_api.py +31 -0
- chia/solver/solver_rpc_client.py +16 -0
- chia/solver/solver_service.py +8 -0
- chia/solver/start_solver.py +102 -0
- {mozilla-ca → chia/ssl}/cacert.pem +0 -27
- chia/ssl/create_ssl.py +3 -2
- chia/{server → timelord}/start_timelord.py +1 -1
- chia/timelord/timelord.py +12 -13
- chia/timelord/timelord_service.py +8 -0
- chia/types/blockchain_format/proof_of_space.py +61 -17
- chia/types/coin_spend.py +0 -8
- chia/types/internal_mempool_item.py +3 -3
- chia/types/mempool_item.py +15 -8
- chia/types/mempool_submission_status.py +1 -1
- chia/util/config.py +1 -3
- chia/util/db_wrapper.py +7 -8
- chia/util/initial-config.yaml +46 -0
- chia/util/lru_cache.py +8 -4
- chia/util/network.py +9 -0
- chia/util/streamable.py +38 -8
- chia/util/virtual_project_analysis.py +1 -1
- chia/wallet/cat_wallet/cat_outer_puzzle.py +7 -4
- chia/wallet/cat_wallet/cat_wallet.py +13 -7
- chia/wallet/cat_wallet/r_cat_wallet.py +4 -1
- chia/wallet/conditions.py +1 -3
- chia/wallet/did_wallet/did_wallet.py +27 -332
- chia/wallet/nft_wallet/nft_puzzle_utils.py +1 -1
- chia/wallet/nft_wallet/nft_wallet.py +9 -7
- chia/wallet/puzzle_drivers.py +7 -8
- chia/{server → wallet}/start_wallet.py +1 -1
- chia/wallet/trade_manager.py +12 -9
- chia/wallet/transaction_record.py +14 -51
- chia/wallet/util/clvm_streamable.py +28 -41
- chia/wallet/util/merkle_utils.py +2 -2
- chia/wallet/util/tx_config.py +3 -6
- chia/wallet/vc_wallet/cr_cat_wallet.py +12 -6
- chia/wallet/vc_wallet/vc_wallet.py +13 -15
- chia/wallet/wallet.py +5 -3
- chia/wallet/wallet_node.py +25 -30
- chia/wallet/wallet_request_types.py +538 -101
- chia/wallet/wallet_rpc_api.py +398 -570
- chia/wallet/wallet_rpc_client.py +144 -332
- chia/wallet/wallet_service.py +8 -0
- chia/wallet/wallet_state_manager.py +53 -42
- chia/wallet/wallet_transaction_store.py +13 -5
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7.dist-info}/METADATA +31 -31
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7.dist-info}/RECORD +368 -240
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7.dist-info}/WHEEL +1 -1
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7.dist-info}/entry_points.txt +8 -7
- chia/full_node/mempool_check_conditions.py +0 -102
- chia/server/aliases.py +0 -35
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7.dist-info/licenses}/LICENSE +0 -0
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
import sys
|
|
4
3
|
from dataclasses import dataclass, field
|
|
5
|
-
from typing import Any, Optional, final
|
|
4
|
+
from typing import Any, BinaryIO, Optional, final
|
|
6
5
|
|
|
7
6
|
from chia_rs import Coin, G1Element, G2Element, PrivateKey
|
|
8
7
|
from chia_rs.sized_bytes import bytes32
|
|
9
|
-
from chia_rs.sized_ints import uint16, uint32, uint64
|
|
10
|
-
from typing_extensions import Self
|
|
8
|
+
from chia_rs.sized_ints import uint8, uint16, uint32, uint64
|
|
9
|
+
from typing_extensions import Self
|
|
11
10
|
|
|
12
11
|
from chia.data_layer.data_layer_wallet import Mirror
|
|
13
12
|
from chia.data_layer.singleton_record import SingletonRecord
|
|
14
13
|
from chia.pools.pool_wallet_info import PoolWalletInfo
|
|
15
14
|
from chia.types.blockchain_format.program import Program
|
|
15
|
+
from chia.types.coin_record import CoinRecord
|
|
16
16
|
from chia.util.byte_types import hexstr_to_bytes
|
|
17
17
|
from chia.util.streamable import Streamable, streamable
|
|
18
|
-
from chia.wallet.conditions import Condition, ConditionValidTimes
|
|
18
|
+
from chia.wallet.conditions import Condition, ConditionValidTimes, conditions_to_json_dicts
|
|
19
19
|
from chia.wallet.nft_wallet.nft_info import NFTInfo
|
|
20
20
|
from chia.wallet.notification_store import Notification
|
|
21
21
|
from chia.wallet.signer_protocol import (
|
|
@@ -28,20 +28,17 @@ from chia.wallet.signer_protocol import (
|
|
|
28
28
|
from chia.wallet.trade_record import TradeRecord
|
|
29
29
|
from chia.wallet.trading.offer import Offer
|
|
30
30
|
from chia.wallet.transaction_record import TransactionRecord
|
|
31
|
+
from chia.wallet.transaction_sorting import SortKey
|
|
31
32
|
from chia.wallet.util.clvm_streamable import json_deserialize_with_clvm_streamable
|
|
32
|
-
from chia.wallet.util.
|
|
33
|
+
from chia.wallet.util.puzzle_decorator_type import PuzzleDecoratorType
|
|
34
|
+
from chia.wallet.util.query_filter import TransactionTypeFilter
|
|
35
|
+
from chia.wallet.util.tx_config import CoinSelectionConfig, CoinSelectionConfigLoader, TXConfig
|
|
33
36
|
from chia.wallet.vc_wallet.vc_store import VCProofs, VCRecord
|
|
37
|
+
from chia.wallet.wallet_info import WalletInfo
|
|
38
|
+
from chia.wallet.wallet_node import Balance
|
|
34
39
|
from chia.wallet.wallet_spend_bundle import WalletSpendBundle
|
|
35
40
|
|
|
36
41
|
|
|
37
|
-
@dataclass_transform(frozen_default=True, kw_only_default=True)
|
|
38
|
-
def kw_only_dataclass(cls: type[Any]) -> type[Any]:
|
|
39
|
-
if sys.version_info >= (3, 10):
|
|
40
|
-
return dataclass(frozen=True, kw_only=True)(cls)
|
|
41
|
-
else:
|
|
42
|
-
return dataclass(frozen=True)(cls) # pragma: no cover
|
|
43
|
-
|
|
44
|
-
|
|
45
42
|
def default_raise() -> Any: # pragma: no cover
|
|
46
43
|
raise RuntimeError("This should be impossible to hit and is just for < 3.10 compatibility")
|
|
47
44
|
|
|
@@ -119,6 +116,7 @@ class GenerateMnemonicResponse(Streamable):
|
|
|
119
116
|
@dataclass(frozen=True)
|
|
120
117
|
class AddKey(Streamable):
|
|
121
118
|
mnemonic: list[str]
|
|
119
|
+
label: Optional[str] = None
|
|
122
120
|
|
|
123
121
|
|
|
124
122
|
@streamable
|
|
@@ -198,6 +196,143 @@ class GetTimestampForHeightResponse(Streamable):
|
|
|
198
196
|
timestamp: uint64
|
|
199
197
|
|
|
200
198
|
|
|
199
|
+
@streamable
|
|
200
|
+
@dataclass(frozen=True)
|
|
201
|
+
class GetWallets(Streamable):
|
|
202
|
+
type: Optional[uint16] = None
|
|
203
|
+
include_data: bool = True
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
# utility for GetWalletsResponse
|
|
207
|
+
@streamable
|
|
208
|
+
@dataclass(frozen=True)
|
|
209
|
+
class WalletInfoResponse(WalletInfo):
|
|
210
|
+
authorized_providers: list[bytes32] = field(default_factory=list)
|
|
211
|
+
flags_needed: list[str] = field(default_factory=list)
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
@streamable
|
|
215
|
+
@dataclass(frozen=True)
|
|
216
|
+
class GetWalletsResponse(Streamable):
|
|
217
|
+
wallets: list[WalletInfoResponse]
|
|
218
|
+
fingerprint: Optional[uint32] = None
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
@streamable
|
|
222
|
+
@dataclass(frozen=True)
|
|
223
|
+
class GetWalletBalance(Streamable):
|
|
224
|
+
wallet_id: uint32
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
@streamable
|
|
228
|
+
@dataclass(frozen=True)
|
|
229
|
+
class GetWalletBalances(Streamable):
|
|
230
|
+
wallet_ids: Optional[list[uint32]] = None
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
# utility for GetWalletBalanceResponse(s)
|
|
234
|
+
@streamable
|
|
235
|
+
@dataclass(frozen=True, kw_only=True)
|
|
236
|
+
class BalanceResponse(Balance):
|
|
237
|
+
wallet_id: uint32 = field(default_factory=default_raise)
|
|
238
|
+
wallet_type: uint8 = field(default_factory=default_raise)
|
|
239
|
+
fingerprint: Optional[uint32] = None
|
|
240
|
+
asset_id: Optional[bytes32] = None
|
|
241
|
+
pending_approval_balance: Optional[uint64] = None
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
@streamable
|
|
245
|
+
@dataclass(frozen=True)
|
|
246
|
+
class GetWalletBalanceResponse(Streamable):
|
|
247
|
+
wallet_balance: BalanceResponse
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
@streamable
|
|
251
|
+
@dataclass(frozen=True)
|
|
252
|
+
class GetWalletBalancesResponse(Streamable):
|
|
253
|
+
wallet_balances: dict[uint32, BalanceResponse]
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
@streamable
|
|
257
|
+
@dataclass(frozen=True)
|
|
258
|
+
class GetTransaction(Streamable):
|
|
259
|
+
transaction_id: bytes32
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
@streamable
|
|
263
|
+
@dataclass(frozen=True)
|
|
264
|
+
class GetTransactionResponse(Streamable):
|
|
265
|
+
transaction: TransactionRecord
|
|
266
|
+
transaction_id: bytes32
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
@streamable
|
|
270
|
+
@dataclass(frozen=True)
|
|
271
|
+
class GetTransactions(Streamable):
|
|
272
|
+
wallet_id: uint32
|
|
273
|
+
start: Optional[uint16] = None
|
|
274
|
+
end: Optional[uint16] = None
|
|
275
|
+
sort_key: Optional[str] = None
|
|
276
|
+
reverse: bool = False
|
|
277
|
+
to_address: Optional[str] = None
|
|
278
|
+
type_filter: Optional[TransactionTypeFilter] = None
|
|
279
|
+
confirmed: Optional[bool] = None
|
|
280
|
+
|
|
281
|
+
def __post_init__(self) -> None:
|
|
282
|
+
if self.sort_key is not None and not hasattr(SortKey, self.sort_key):
|
|
283
|
+
raise ValueError(f"There is no known sort {self.sort_key}")
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
# utility for GetTransactionsResponse
|
|
287
|
+
# this class cannot be a dataclass because if it is, streamable will assume it knows how to serialize it
|
|
288
|
+
# TODO: We should put some thought into deprecating this and separating the metadata more reasonably
|
|
289
|
+
class TransactionRecordMetadata:
|
|
290
|
+
content: dict[str, Any]
|
|
291
|
+
coin_id: bytes32
|
|
292
|
+
spent: bool
|
|
293
|
+
|
|
294
|
+
def __init__(self, content: dict[str, Any], coin_id: bytes32, spent: bool) -> None:
|
|
295
|
+
self.content = content
|
|
296
|
+
self.coin_id = coin_id
|
|
297
|
+
self.spent = spent
|
|
298
|
+
|
|
299
|
+
def __bytes__(self) -> bytes:
|
|
300
|
+
raise NotImplementedError("Should not be serializing this object as bytes, it's only for RPC")
|
|
301
|
+
|
|
302
|
+
@classmethod
|
|
303
|
+
def parse(cls, f: BinaryIO) -> TransactionRecordMetadata:
|
|
304
|
+
raise NotImplementedError("Should not be deserializing this object from a stream, it's only for RPC")
|
|
305
|
+
|
|
306
|
+
def to_json_dict(self) -> dict[str, Any]:
|
|
307
|
+
return {
|
|
308
|
+
**self.content,
|
|
309
|
+
"coin_id": "0x" + self.coin_id.hex(),
|
|
310
|
+
"spent": self.spent,
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
@classmethod
|
|
314
|
+
def from_json_dict(cls, json_dict: dict[str, Any]) -> TransactionRecordMetadata:
|
|
315
|
+
return TransactionRecordMetadata(
|
|
316
|
+
coin_id=bytes32.from_hexstr(json_dict["coin_id"]),
|
|
317
|
+
spent=json_dict["spent"],
|
|
318
|
+
content={k: v for k, v in json_dict.items() if k not in {"coin_id", "spent"}},
|
|
319
|
+
)
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
# utility for GetTransactionsResponse
|
|
323
|
+
@streamable
|
|
324
|
+
@dataclass(frozen=True)
|
|
325
|
+
class TransactionRecordWithMetadata(TransactionRecord):
|
|
326
|
+
metadata: Optional[TransactionRecordMetadata] = None
|
|
327
|
+
|
|
328
|
+
|
|
329
|
+
@streamable
|
|
330
|
+
@dataclass(frozen=True)
|
|
331
|
+
class GetTransactionsResponse(Streamable):
|
|
332
|
+
transactions: list[TransactionRecordWithMetadata]
|
|
333
|
+
wallet_id: uint32
|
|
334
|
+
|
|
335
|
+
|
|
201
336
|
@streamable
|
|
202
337
|
@dataclass(frozen=True)
|
|
203
338
|
class GetNotifications(Streamable):
|
|
@@ -212,6 +347,12 @@ class GetNotificationsResponse(Streamable):
|
|
|
212
347
|
notifications: list[Notification]
|
|
213
348
|
|
|
214
349
|
|
|
350
|
+
@streamable
|
|
351
|
+
@dataclass(frozen=True)
|
|
352
|
+
class DeleteNotifications(Streamable):
|
|
353
|
+
ids: Optional[list[bytes32]] = None
|
|
354
|
+
|
|
355
|
+
|
|
215
356
|
@streamable
|
|
216
357
|
@dataclass(frozen=True)
|
|
217
358
|
class VerifySignature(Streamable):
|
|
@@ -231,43 +372,198 @@ class VerifySignatureResponse(Streamable):
|
|
|
231
372
|
|
|
232
373
|
@streamable
|
|
233
374
|
@dataclass(frozen=True)
|
|
234
|
-
class
|
|
235
|
-
|
|
375
|
+
class SignMessageByAddress(Streamable):
|
|
376
|
+
address: str
|
|
377
|
+
message: str
|
|
378
|
+
is_hex: bool = False
|
|
379
|
+
safe_mode: bool = True
|
|
236
380
|
|
|
237
381
|
|
|
238
|
-
# utility type for GetTransactionMemoResponse
|
|
239
382
|
@streamable
|
|
240
383
|
@dataclass(frozen=True)
|
|
241
|
-
class
|
|
242
|
-
|
|
243
|
-
|
|
384
|
+
class SignMessageByAddressResponse(Streamable):
|
|
385
|
+
pubkey: G1Element
|
|
386
|
+
signature: G2Element
|
|
387
|
+
signing_mode: str
|
|
244
388
|
|
|
245
389
|
|
|
246
390
|
@streamable
|
|
247
391
|
@dataclass(frozen=True)
|
|
248
|
-
class
|
|
392
|
+
class SignMessageByID(Streamable):
|
|
393
|
+
id: str
|
|
394
|
+
message: str
|
|
395
|
+
is_hex: bool = False
|
|
396
|
+
safe_mode: bool = True
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
@streamable
|
|
400
|
+
@dataclass(frozen=True)
|
|
401
|
+
class SignMessageByIDResponse(Streamable):
|
|
402
|
+
pubkey: G1Element
|
|
403
|
+
signature: G2Element
|
|
404
|
+
latest_coin_id: bytes32
|
|
405
|
+
signing_mode: str
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
@streamable
|
|
409
|
+
@dataclass(frozen=True)
|
|
410
|
+
class GetTransactionMemo(Streamable):
|
|
249
411
|
transaction_id: bytes32
|
|
250
|
-
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
@streamable
|
|
415
|
+
@dataclass(frozen=True)
|
|
416
|
+
class GetTransactionMemoResponse(Streamable):
|
|
417
|
+
transaction_memos: dict[bytes32, dict[bytes32, list[bytes]]]
|
|
418
|
+
|
|
419
|
+
@property
|
|
420
|
+
def memo_dict(self) -> dict[bytes32, list[bytes]]:
|
|
421
|
+
return next(iter(self.transaction_memos.values()))
|
|
251
422
|
|
|
252
423
|
# TODO: deprecate the kinda silly format of this RPC and delete these functions
|
|
253
424
|
def to_json_dict(self) -> dict[str, Any]:
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
cwm.coin_id.hex(): [memo.hex() for memo in cwm.memos] for cwm in self.coins_with_memos
|
|
257
|
-
}
|
|
258
|
-
}
|
|
425
|
+
# This is semantically guaranteed but mypy can't know that
|
|
426
|
+
return super().to_json_dict()["transaction_memos"] # type: ignore[no-any-return]
|
|
259
427
|
|
|
260
428
|
@classmethod
|
|
261
429
|
def from_json_dict(cls, json_dict: dict[str, Any]) -> GetTransactionMemoResponse:
|
|
430
|
+
return super().from_json_dict(
|
|
431
|
+
# We have to filter out the "success" key here
|
|
432
|
+
# because it doesn't match our `transaction_memos` hint
|
|
433
|
+
#
|
|
434
|
+
# We do this by only allowing the keys with "0x"
|
|
435
|
+
# which we can assume exist because we serialize all responses
|
|
436
|
+
{"transaction_memos": {key: value for key, value in json_dict.items() if key.startswith("0x")}}
|
|
437
|
+
)
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
@streamable
|
|
441
|
+
@dataclass(frozen=True)
|
|
442
|
+
class GetTransactionCount(Streamable):
|
|
443
|
+
wallet_id: uint32
|
|
444
|
+
confirmed: Optional[bool] = None
|
|
445
|
+
type_filter: Optional[TransactionTypeFilter] = None
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
@streamable
|
|
449
|
+
@dataclass(frozen=True)
|
|
450
|
+
class GetTransactionCountResponse(Streamable):
|
|
451
|
+
wallet_id: uint32
|
|
452
|
+
count: uint16
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
@streamable
|
|
456
|
+
@dataclass(frozen=True)
|
|
457
|
+
class GetNextAddress(Streamable):
|
|
458
|
+
wallet_id: uint32
|
|
459
|
+
new_address: bool = False
|
|
460
|
+
save_derivations: bool = True
|
|
461
|
+
|
|
462
|
+
|
|
463
|
+
@streamable
|
|
464
|
+
@dataclass(frozen=True)
|
|
465
|
+
class GetNextAddressResponse(Streamable):
|
|
466
|
+
wallet_id: uint32
|
|
467
|
+
address: str
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
@streamable
|
|
471
|
+
@dataclass(frozen=True)
|
|
472
|
+
class DeleteUnconfirmedTransactions(Streamable):
|
|
473
|
+
wallet_id: uint32
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
@streamable
|
|
477
|
+
@dataclass(frozen=True)
|
|
478
|
+
class SelectCoins(CoinSelectionConfigLoader):
|
|
479
|
+
wallet_id: uint32 = field(default_factory=default_raise)
|
|
480
|
+
amount: uint64 = field(default_factory=default_raise)
|
|
481
|
+
exclude_coins: Optional[list[Coin]] = None # for backwards compatibility
|
|
482
|
+
|
|
483
|
+
def __post_init__(self) -> None:
|
|
484
|
+
if self.excluded_coin_ids is not None and self.exclude_coins is not None:
|
|
485
|
+
raise ValueError(
|
|
486
|
+
"Cannot specify both excluded_coin_ids/excluded_coins and exclude_coins (the latter is deprecated)"
|
|
487
|
+
)
|
|
488
|
+
super().__post_init__()
|
|
489
|
+
|
|
490
|
+
@classmethod
|
|
491
|
+
def from_coin_selection_config(
|
|
492
|
+
cls, wallet_id: uint32, amount: uint64, coin_selection_config: CoinSelectionConfig
|
|
493
|
+
) -> Self:
|
|
262
494
|
return cls(
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
495
|
+
wallet_id=wallet_id,
|
|
496
|
+
amount=amount,
|
|
497
|
+
min_coin_amount=coin_selection_config.min_coin_amount,
|
|
498
|
+
max_coin_amount=coin_selection_config.max_coin_amount,
|
|
499
|
+
excluded_coin_amounts=coin_selection_config.excluded_coin_amounts,
|
|
500
|
+
excluded_coin_ids=coin_selection_config.excluded_coin_ids,
|
|
501
|
+
)
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
@streamable
|
|
505
|
+
@dataclass(frozen=True)
|
|
506
|
+
class SelectCoinsResponse(Streamable):
|
|
507
|
+
coins: list[Coin]
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
@streamable
|
|
511
|
+
@dataclass(frozen=True)
|
|
512
|
+
class GetSpendableCoins(CoinSelectionConfigLoader):
|
|
513
|
+
wallet_id: uint32 = field(default_factory=default_raise)
|
|
514
|
+
|
|
515
|
+
@classmethod
|
|
516
|
+
def from_coin_selection_config(cls, wallet_id: uint32, coin_selection_config: CoinSelectionConfig) -> Self:
|
|
517
|
+
return cls(
|
|
518
|
+
wallet_id=wallet_id,
|
|
519
|
+
min_coin_amount=coin_selection_config.min_coin_amount,
|
|
520
|
+
max_coin_amount=coin_selection_config.max_coin_amount,
|
|
521
|
+
excluded_coin_amounts=coin_selection_config.excluded_coin_amounts,
|
|
522
|
+
excluded_coin_ids=coin_selection_config.excluded_coin_ids,
|
|
268
523
|
)
|
|
269
524
|
|
|
270
525
|
|
|
526
|
+
@streamable
|
|
527
|
+
@dataclass(frozen=True)
|
|
528
|
+
class GetSpendableCoinsResponse(Streamable):
|
|
529
|
+
confirmed_records: list[CoinRecord]
|
|
530
|
+
unconfirmed_removals: list[CoinRecord]
|
|
531
|
+
unconfirmed_additions: list[Coin]
|
|
532
|
+
|
|
533
|
+
|
|
534
|
+
@streamable
|
|
535
|
+
@dataclass(frozen=True)
|
|
536
|
+
class GetCoinRecordsByNames(Streamable):
|
|
537
|
+
names: list[bytes32]
|
|
538
|
+
start_height: Optional[uint32] = None
|
|
539
|
+
end_height: Optional[uint32] = None
|
|
540
|
+
include_spent_coins: bool = True
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
@streamable
|
|
544
|
+
@dataclass(frozen=True)
|
|
545
|
+
class GetCoinRecordsByNamesResponse(Streamable):
|
|
546
|
+
coin_records: list[CoinRecord]
|
|
547
|
+
|
|
548
|
+
|
|
549
|
+
@streamable
|
|
550
|
+
@dataclass(frozen=True)
|
|
551
|
+
class GetCurrentDerivationIndexResponse(Streamable):
|
|
552
|
+
index: Optional[uint32]
|
|
553
|
+
|
|
554
|
+
|
|
555
|
+
@streamable
|
|
556
|
+
@dataclass(frozen=True)
|
|
557
|
+
class ExtendDerivationIndex(Streamable):
|
|
558
|
+
index: uint32
|
|
559
|
+
|
|
560
|
+
|
|
561
|
+
@streamable
|
|
562
|
+
@dataclass(frozen=True)
|
|
563
|
+
class ExtendDerivationIndexResponse(Streamable):
|
|
564
|
+
index: Optional[uint32]
|
|
565
|
+
|
|
566
|
+
|
|
271
567
|
@streamable
|
|
272
568
|
@dataclass(frozen=True)
|
|
273
569
|
class GetOffersCountResponse(Streamable):
|
|
@@ -290,6 +586,86 @@ class GetCATListResponse(Streamable):
|
|
|
290
586
|
cat_list: list[DefaultCAT]
|
|
291
587
|
|
|
292
588
|
|
|
589
|
+
@streamable
|
|
590
|
+
@dataclass(frozen=True)
|
|
591
|
+
class CATSetName(Streamable):
|
|
592
|
+
wallet_id: uint32
|
|
593
|
+
name: str
|
|
594
|
+
|
|
595
|
+
|
|
596
|
+
@streamable
|
|
597
|
+
@dataclass(frozen=True)
|
|
598
|
+
class CATSetNameResponse(Streamable):
|
|
599
|
+
wallet_id: uint32
|
|
600
|
+
|
|
601
|
+
|
|
602
|
+
@streamable
|
|
603
|
+
@dataclass(frozen=True)
|
|
604
|
+
class CATGetName(Streamable):
|
|
605
|
+
wallet_id: uint32
|
|
606
|
+
|
|
607
|
+
|
|
608
|
+
@streamable
|
|
609
|
+
@dataclass(frozen=True)
|
|
610
|
+
class CATGetNameResponse(Streamable):
|
|
611
|
+
wallet_id: uint32
|
|
612
|
+
name: str
|
|
613
|
+
|
|
614
|
+
|
|
615
|
+
@streamable
|
|
616
|
+
@dataclass(frozen=True)
|
|
617
|
+
class StrayCAT(Streamable):
|
|
618
|
+
asset_id: bytes32
|
|
619
|
+
name: str
|
|
620
|
+
first_seen_height: uint32
|
|
621
|
+
sender_puzzle_hash: bytes32
|
|
622
|
+
|
|
623
|
+
|
|
624
|
+
@streamable
|
|
625
|
+
@dataclass(frozen=True)
|
|
626
|
+
class GetStrayCATsResponse(Streamable):
|
|
627
|
+
stray_cats: list[StrayCAT]
|
|
628
|
+
|
|
629
|
+
|
|
630
|
+
@streamable
|
|
631
|
+
@dataclass(frozen=True)
|
|
632
|
+
class CATGetAssetID(Streamable):
|
|
633
|
+
wallet_id: uint32
|
|
634
|
+
|
|
635
|
+
|
|
636
|
+
@streamable
|
|
637
|
+
@dataclass(frozen=True)
|
|
638
|
+
class CATGetAssetIDResponse(Streamable):
|
|
639
|
+
wallet_id: uint32
|
|
640
|
+
asset_id: bytes32
|
|
641
|
+
|
|
642
|
+
|
|
643
|
+
@streamable
|
|
644
|
+
@dataclass(frozen=True)
|
|
645
|
+
class CATAssetIDToName(Streamable):
|
|
646
|
+
asset_id: bytes32
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
@streamable
|
|
650
|
+
@dataclass(frozen=True)
|
|
651
|
+
class CATAssetIDToNameResponse(Streamable):
|
|
652
|
+
wallet_id: Optional[uint32]
|
|
653
|
+
name: Optional[str]
|
|
654
|
+
|
|
655
|
+
|
|
656
|
+
@streamable
|
|
657
|
+
@dataclass(frozen=True)
|
|
658
|
+
class CheckOfferValidity(Streamable):
|
|
659
|
+
offer: str
|
|
660
|
+
|
|
661
|
+
|
|
662
|
+
@streamable
|
|
663
|
+
@dataclass(frozen=True)
|
|
664
|
+
class CheckOfferValidityResponse(Streamable):
|
|
665
|
+
valid: bool
|
|
666
|
+
id: bytes32
|
|
667
|
+
|
|
668
|
+
|
|
293
669
|
@streamable
|
|
294
670
|
@dataclass(frozen=True)
|
|
295
671
|
class DIDSetWalletName(Streamable):
|
|
@@ -366,23 +742,6 @@ class DIDGetPubkeyResponse(Streamable):
|
|
|
366
742
|
pubkey: G1Element
|
|
367
743
|
|
|
368
744
|
|
|
369
|
-
@streamable
|
|
370
|
-
@dataclass(frozen=True)
|
|
371
|
-
class DIDGetRecoveryInfo(Streamable):
|
|
372
|
-
wallet_id: uint32
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
@streamable
|
|
376
|
-
@dataclass(frozen=True)
|
|
377
|
-
class DIDGetRecoveryInfoResponse(Streamable):
|
|
378
|
-
wallet_id: uint32
|
|
379
|
-
my_did: str
|
|
380
|
-
coin_name: bytes32
|
|
381
|
-
newpuzhash: Optional[bytes32]
|
|
382
|
-
pubkey: Optional[G1Element]
|
|
383
|
-
backup_dids: list[bytes32]
|
|
384
|
-
|
|
385
|
-
|
|
386
745
|
@streamable
|
|
387
746
|
@dataclass(frozen=True)
|
|
388
747
|
class DIDGetCurrentCoinInfo(Streamable):
|
|
@@ -426,20 +785,6 @@ class DIDGetDIDResponse(Streamable):
|
|
|
426
785
|
coin_id: Optional[bytes32] = None
|
|
427
786
|
|
|
428
787
|
|
|
429
|
-
@streamable
|
|
430
|
-
@dataclass(frozen=True)
|
|
431
|
-
class DIDGetRecoveryList(Streamable):
|
|
432
|
-
wallet_id: uint32
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
@streamable
|
|
436
|
-
@dataclass(frozen=True)
|
|
437
|
-
class DIDGetRecoveryListResponse(Streamable):
|
|
438
|
-
wallet_id: uint32
|
|
439
|
-
recovery_list: list[str]
|
|
440
|
-
num_required: uint16
|
|
441
|
-
|
|
442
|
-
|
|
443
788
|
@streamable
|
|
444
789
|
@dataclass(frozen=True)
|
|
445
790
|
class DIDGetMetadata(Streamable):
|
|
@@ -882,7 +1227,7 @@ class ExecuteSigningInstructionsResponse(Streamable):
|
|
|
882
1227
|
# field(default_factory=default_raise)
|
|
883
1228
|
# (this is for < 3.10 compatibility)
|
|
884
1229
|
@streamable
|
|
885
|
-
@
|
|
1230
|
+
@dataclass(frozen=True, kw_only=True)
|
|
886
1231
|
class TransactionEndpointRequest(Streamable):
|
|
887
1232
|
fee: uint64 = uint64(0)
|
|
888
1233
|
push: Optional[bool] = None
|
|
@@ -902,7 +1247,7 @@ class TransactionEndpointRequest(Streamable):
|
|
|
902
1247
|
return {
|
|
903
1248
|
**tx_config.to_json_dict(),
|
|
904
1249
|
**timelock_info.to_json_dict(),
|
|
905
|
-
"extra_conditions":
|
|
1250
|
+
"extra_conditions": conditions_to_json_dicts(extra_conditions),
|
|
906
1251
|
**self.to_json_dict(_avoid_ban=True),
|
|
907
1252
|
}
|
|
908
1253
|
|
|
@@ -914,6 +1259,67 @@ class TransactionEndpointResponse(Streamable):
|
|
|
914
1259
|
transactions: list[TransactionRecord]
|
|
915
1260
|
|
|
916
1261
|
|
|
1262
|
+
# utility for SendTransaction
|
|
1263
|
+
@streamable
|
|
1264
|
+
@dataclass(frozen=True)
|
|
1265
|
+
class ClawbackPuzzleDecoratorOverride(Streamable):
|
|
1266
|
+
decorator: str
|
|
1267
|
+
clawback_timelock: uint64
|
|
1268
|
+
|
|
1269
|
+
def __post_init__(self) -> None:
|
|
1270
|
+
if self.decorator != PuzzleDecoratorType.CLAWBACK.name:
|
|
1271
|
+
raise ValueError("Invalid clawback puzzle decorator override specified")
|
|
1272
|
+
super().__post_init__()
|
|
1273
|
+
|
|
1274
|
+
|
|
1275
|
+
@streamable
|
|
1276
|
+
@dataclass(frozen=True)
|
|
1277
|
+
class SendTransaction(TransactionEndpointRequest):
|
|
1278
|
+
wallet_id: uint32 = field(default_factory=default_raise)
|
|
1279
|
+
amount: uint64 = field(default_factory=default_raise)
|
|
1280
|
+
address: str = field(default_factory=default_raise)
|
|
1281
|
+
memos: list[str] = field(default_factory=list)
|
|
1282
|
+
# Technically this value was meant to support many types here
|
|
1283
|
+
# However, only one is supported right now and there are no plans to extend
|
|
1284
|
+
# So, as a slight hack, we'll specify that only Clawback is supported
|
|
1285
|
+
puzzle_decorator: Optional[list[ClawbackPuzzleDecoratorOverride]] = None
|
|
1286
|
+
|
|
1287
|
+
|
|
1288
|
+
@streamable
|
|
1289
|
+
@dataclass(frozen=True)
|
|
1290
|
+
class SendTransactionResponse(TransactionEndpointResponse):
|
|
1291
|
+
transaction: TransactionRecord
|
|
1292
|
+
transaction_id: bytes32
|
|
1293
|
+
|
|
1294
|
+
|
|
1295
|
+
@streamable
|
|
1296
|
+
@dataclass(frozen=True)
|
|
1297
|
+
class SpendClawbackCoins(TransactionEndpointRequest):
|
|
1298
|
+
coin_ids: list[bytes32] = field(default_factory=default_raise)
|
|
1299
|
+
batch_size: Optional[uint16] = None
|
|
1300
|
+
force: bool = False
|
|
1301
|
+
|
|
1302
|
+
|
|
1303
|
+
@streamable
|
|
1304
|
+
@dataclass(frozen=True)
|
|
1305
|
+
class SpendClawbackCoinsResponse(TransactionEndpointResponse):
|
|
1306
|
+
transaction_ids: list[bytes32]
|
|
1307
|
+
|
|
1308
|
+
|
|
1309
|
+
@streamable
|
|
1310
|
+
@dataclass(frozen=True)
|
|
1311
|
+
class SendNotification(TransactionEndpointRequest):
|
|
1312
|
+
target: bytes32 = field(default_factory=default_raise)
|
|
1313
|
+
message: bytes = field(default_factory=default_raise)
|
|
1314
|
+
amount: uint64 = uint64(0)
|
|
1315
|
+
|
|
1316
|
+
|
|
1317
|
+
@streamable
|
|
1318
|
+
@dataclass(frozen=True)
|
|
1319
|
+
class SendNotificationResponse(TransactionEndpointResponse):
|
|
1320
|
+
tx: TransactionRecord
|
|
1321
|
+
|
|
1322
|
+
|
|
917
1323
|
@streamable
|
|
918
1324
|
@dataclass(frozen=True)
|
|
919
1325
|
class PushTransactions(TransactionEndpointRequest):
|
|
@@ -928,10 +1334,7 @@ class PushTransactions(TransactionEndpointRequest):
|
|
|
928
1334
|
if isinstance(transaction_hexstr_or_json, str):
|
|
929
1335
|
tx = TransactionRecord.from_bytes(hexstr_to_bytes(transaction_hexstr_or_json))
|
|
930
1336
|
else:
|
|
931
|
-
|
|
932
|
-
tx = TransactionRecord.from_json_dict_convenience(transaction_hexstr_or_json)
|
|
933
|
-
except AttributeError:
|
|
934
|
-
tx = TransactionRecord.from_json_dict(transaction_hexstr_or_json)
|
|
1337
|
+
tx = TransactionRecord.from_json_dict(transaction_hexstr_or_json)
|
|
935
1338
|
transactions.append(tx)
|
|
936
1339
|
|
|
937
1340
|
json_dict["transactions"] = [tx.to_json_dict() for tx in transactions]
|
|
@@ -945,7 +1348,7 @@ class PushTransactionsResponse(TransactionEndpointResponse):
|
|
|
945
1348
|
|
|
946
1349
|
|
|
947
1350
|
@streamable
|
|
948
|
-
@
|
|
1351
|
+
@dataclass(frozen=True, kw_only=True)
|
|
949
1352
|
class SplitCoins(TransactionEndpointRequest):
|
|
950
1353
|
wallet_id: uint32 = field(default_factory=default_raise)
|
|
951
1354
|
number_of_coins: uint16 = field(default_factory=default_raise)
|
|
@@ -960,7 +1363,7 @@ class SplitCoinsResponse(TransactionEndpointResponse):
|
|
|
960
1363
|
|
|
961
1364
|
|
|
962
1365
|
@streamable
|
|
963
|
-
@
|
|
1366
|
+
@dataclass(frozen=True, kw_only=True)
|
|
964
1367
|
class CombineCoins(TransactionEndpointRequest):
|
|
965
1368
|
wallet_id: uint32 = field(default_factory=default_raise)
|
|
966
1369
|
number_of_coins: uint16 = uint16(500)
|
|
@@ -976,22 +1379,63 @@ class CombineCoinsResponse(TransactionEndpointResponse):
|
|
|
976
1379
|
pass
|
|
977
1380
|
|
|
978
1381
|
|
|
1382
|
+
# utility for CATSpend
|
|
1383
|
+
# unfortunate that we can't use CreateCoin but the memos are taken as strings not bytes
|
|
1384
|
+
@streamable
|
|
1385
|
+
@dataclass(frozen=True)
|
|
1386
|
+
class Addition(Streamable):
|
|
1387
|
+
amount: uint64
|
|
1388
|
+
puzzle_hash: bytes32
|
|
1389
|
+
memos: Optional[list[str]] = None
|
|
1390
|
+
|
|
1391
|
+
|
|
979
1392
|
@streamable
|
|
980
|
-
@
|
|
981
|
-
class
|
|
1393
|
+
@dataclass(frozen=True, kw_only=True)
|
|
1394
|
+
class CATSpend(TransactionEndpointRequest):
|
|
982
1395
|
wallet_id: uint32 = field(default_factory=default_raise)
|
|
983
|
-
|
|
984
|
-
|
|
1396
|
+
additions: Optional[list[Addition]] = None
|
|
1397
|
+
amount: Optional[uint64] = None
|
|
1398
|
+
inner_address: Optional[str] = None
|
|
1399
|
+
memos: Optional[list[str]] = None
|
|
1400
|
+
coins: Optional[list[Coin]] = None
|
|
1401
|
+
extra_delta: Optional[str] = None # str to support negative ints :(
|
|
1402
|
+
tail_reveal: Optional[bytes] = None
|
|
1403
|
+
tail_solution: Optional[bytes] = None
|
|
1404
|
+
|
|
1405
|
+
def __post_init__(self) -> None:
|
|
1406
|
+
if (
|
|
1407
|
+
self.additions is not None
|
|
1408
|
+
and (self.amount is not None or self.inner_address is not None or self.memos is not None)
|
|
1409
|
+
) or (self.additions is None and self.amount is None and self.inner_address is None and self.memos is None):
|
|
1410
|
+
raise ValueError('Must specify "additions" or "amount"+"inner_address"+"memos", but not both.')
|
|
1411
|
+
elif self.additions is None and None in {self.amount, self.inner_address}:
|
|
1412
|
+
raise ValueError('Must specify "amount" and "inner_address" together.')
|
|
1413
|
+
super().__post_init__()
|
|
1414
|
+
|
|
1415
|
+
@property
|
|
1416
|
+
def cat_discrepancy(self) -> Optional[tuple[int, Program, Program]]:
|
|
1417
|
+
if self.extra_delta is None and self.tail_reveal is None and self.tail_solution is None:
|
|
1418
|
+
return None
|
|
1419
|
+
elif None in {self.extra_delta, self.tail_reveal, self.tail_solution}:
|
|
1420
|
+
raise ValueError('Must specify "extra_delta", "tail_reveal" and "tail_solution" together.')
|
|
1421
|
+
else:
|
|
1422
|
+
# Curious that mypy doesn't see the elif and know that none of these are None
|
|
1423
|
+
return (
|
|
1424
|
+
int(self.extra_delta), # type: ignore[arg-type]
|
|
1425
|
+
Program.from_bytes(self.tail_reveal), # type: ignore[arg-type]
|
|
1426
|
+
Program.from_bytes(self.tail_solution), # type: ignore[arg-type]
|
|
1427
|
+
)
|
|
985
1428
|
|
|
986
1429
|
|
|
987
1430
|
@streamable
|
|
988
1431
|
@dataclass(frozen=True)
|
|
989
|
-
class
|
|
990
|
-
|
|
1432
|
+
class CATSpendResponse(TransactionEndpointResponse):
|
|
1433
|
+
transaction: TransactionRecord
|
|
1434
|
+
transaction_id: bytes32
|
|
991
1435
|
|
|
992
1436
|
|
|
993
1437
|
@streamable
|
|
994
|
-
@
|
|
1438
|
+
@dataclass(frozen=True, kw_only=True)
|
|
995
1439
|
class DIDMessageSpend(TransactionEndpointRequest):
|
|
996
1440
|
wallet_id: uint32 = field(default_factory=default_raise)
|
|
997
1441
|
coin_announcements: list[bytes] = field(default_factory=list)
|
|
@@ -1005,7 +1449,7 @@ class DIDMessageSpendResponse(TransactionEndpointResponse):
|
|
|
1005
1449
|
|
|
1006
1450
|
|
|
1007
1451
|
@streamable
|
|
1008
|
-
@
|
|
1452
|
+
@dataclass(frozen=True, kw_only=True)
|
|
1009
1453
|
class DIDUpdateMetadata(TransactionEndpointRequest):
|
|
1010
1454
|
wallet_id: uint32 = field(default_factory=default_raise)
|
|
1011
1455
|
metadata: dict[str, str] = field(default_factory=dict)
|
|
@@ -1019,12 +1463,17 @@ class DIDUpdateMetadataResponse(TransactionEndpointResponse):
|
|
|
1019
1463
|
|
|
1020
1464
|
|
|
1021
1465
|
@streamable
|
|
1022
|
-
@
|
|
1466
|
+
@dataclass(frozen=True, kw_only=True)
|
|
1023
1467
|
class DIDTransferDID(TransactionEndpointRequest):
|
|
1024
1468
|
wallet_id: uint32 = field(default_factory=default_raise)
|
|
1025
1469
|
inner_address: str = field(default_factory=default_raise)
|
|
1026
1470
|
with_recovery_info: bool = True
|
|
1027
1471
|
|
|
1472
|
+
def __post_init__(self) -> None:
|
|
1473
|
+
if self.with_recovery_info is False:
|
|
1474
|
+
raise ValueError("Recovery related options are no longer supported. `with_recovery` must always be true.")
|
|
1475
|
+
return super().__post_init__()
|
|
1476
|
+
|
|
1028
1477
|
|
|
1029
1478
|
@streamable
|
|
1030
1479
|
@dataclass(frozen=True)
|
|
@@ -1034,7 +1483,7 @@ class DIDTransferDIDResponse(TransactionEndpointResponse):
|
|
|
1034
1483
|
|
|
1035
1484
|
|
|
1036
1485
|
@streamable
|
|
1037
|
-
@
|
|
1486
|
+
@dataclass(frozen=True, kw_only=True)
|
|
1038
1487
|
class NFTMintNFTRequest(TransactionEndpointRequest):
|
|
1039
1488
|
wallet_id: uint32 = field(default_factory=default_raise)
|
|
1040
1489
|
royalty_address: Optional[str] = field(default_factory=default_raise)
|
|
@@ -1060,7 +1509,7 @@ class NFTMintNFTResponse(TransactionEndpointResponse):
|
|
|
1060
1509
|
|
|
1061
1510
|
|
|
1062
1511
|
@streamable
|
|
1063
|
-
@
|
|
1512
|
+
@dataclass(frozen=True, kw_only=True)
|
|
1064
1513
|
class NFTSetNFTDID(TransactionEndpointRequest):
|
|
1065
1514
|
wallet_id: uint32 = field(default_factory=default_raise)
|
|
1066
1515
|
nft_coin_id: bytes32 = field(default_factory=default_raise)
|
|
@@ -1075,7 +1524,7 @@ class NFTSetNFTDIDResponse(TransactionEndpointResponse):
|
|
|
1075
1524
|
|
|
1076
1525
|
|
|
1077
1526
|
@streamable
|
|
1078
|
-
@
|
|
1527
|
+
@dataclass(frozen=True, kw_only=True)
|
|
1079
1528
|
class NFTSetDIDBulk(TransactionEndpointRequest):
|
|
1080
1529
|
nft_coin_list: list[NFTCoin] = field(default_factory=default_raise)
|
|
1081
1530
|
did_id: Optional[str] = None
|
|
@@ -1090,7 +1539,7 @@ class NFTSetDIDBulkResponse(TransactionEndpointResponse):
|
|
|
1090
1539
|
|
|
1091
1540
|
|
|
1092
1541
|
@streamable
|
|
1093
|
-
@
|
|
1542
|
+
@dataclass(frozen=True, kw_only=True)
|
|
1094
1543
|
class NFTTransferBulk(TransactionEndpointRequest):
|
|
1095
1544
|
nft_coin_list: list[NFTCoin] = field(default_factory=default_raise)
|
|
1096
1545
|
target_address: str = field(default_factory=default_raise)
|
|
@@ -1105,7 +1554,7 @@ class NFTTransferBulkResponse(TransactionEndpointResponse):
|
|
|
1105
1554
|
|
|
1106
1555
|
|
|
1107
1556
|
@streamable
|
|
1108
|
-
@
|
|
1557
|
+
@dataclass(frozen=True, kw_only=True)
|
|
1109
1558
|
class CreateNewDL(TransactionEndpointRequest):
|
|
1110
1559
|
root: bytes32 = field(default_factory=default_raise)
|
|
1111
1560
|
|
|
@@ -1117,7 +1566,7 @@ class CreateNewDLResponse(TransactionEndpointResponse):
|
|
|
1117
1566
|
|
|
1118
1567
|
|
|
1119
1568
|
@streamable
|
|
1120
|
-
@
|
|
1569
|
+
@dataclass(frozen=True, kw_only=True)
|
|
1121
1570
|
class DLUpdateRoot(TransactionEndpointRequest):
|
|
1122
1571
|
launcher_id: bytes32 = field(default_factory=default_raise)
|
|
1123
1572
|
new_root: bytes32 = field(default_factory=default_raise)
|
|
@@ -1161,7 +1610,7 @@ class DLUpdateMultipleUpdates(Streamable):
|
|
|
1161
1610
|
|
|
1162
1611
|
|
|
1163
1612
|
@streamable
|
|
1164
|
-
@
|
|
1613
|
+
@dataclass(frozen=True, kw_only=True)
|
|
1165
1614
|
class DLUpdateMultiple(TransactionEndpointRequest):
|
|
1166
1615
|
updates: DLUpdateMultipleUpdates = field(default_factory=default_raise)
|
|
1167
1616
|
|
|
@@ -1177,7 +1626,7 @@ class DLUpdateMultipleResponse(TransactionEndpointResponse):
|
|
|
1177
1626
|
|
|
1178
1627
|
|
|
1179
1628
|
@streamable
|
|
1180
|
-
@
|
|
1629
|
+
@dataclass(frozen=True, kw_only=True)
|
|
1181
1630
|
class DLNewMirror(TransactionEndpointRequest):
|
|
1182
1631
|
launcher_id: bytes32 = field(default_factory=default_raise)
|
|
1183
1632
|
amount: uint64 = field(default_factory=default_raise)
|
|
@@ -1191,7 +1640,7 @@ class DLNewMirrorResponse(TransactionEndpointResponse):
|
|
|
1191
1640
|
|
|
1192
1641
|
|
|
1193
1642
|
@streamable
|
|
1194
|
-
@
|
|
1643
|
+
@dataclass(frozen=True, kw_only=True)
|
|
1195
1644
|
class DLDeleteMirror(TransactionEndpointRequest):
|
|
1196
1645
|
coin_id: bytes32 = field(default_factory=default_raise)
|
|
1197
1646
|
|
|
@@ -1361,11 +1810,6 @@ class VCRevokeResponse(TransactionEndpointResponse):
|
|
|
1361
1810
|
|
|
1362
1811
|
# TODO: The section below needs corresponding request types
|
|
1363
1812
|
# TODO: The section below should be added to the API (currently only for client)
|
|
1364
|
-
@streamable
|
|
1365
|
-
@dataclass(frozen=True)
|
|
1366
|
-
class SendTransactionResponse(TransactionEndpointResponse):
|
|
1367
|
-
transaction: TransactionRecord
|
|
1368
|
-
transaction_id: bytes32
|
|
1369
1813
|
|
|
1370
1814
|
|
|
1371
1815
|
@streamable
|
|
@@ -1382,13 +1826,6 @@ class CreateSignedTransactionsResponse(TransactionEndpointResponse):
|
|
|
1382
1826
|
signed_tx: TransactionRecord
|
|
1383
1827
|
|
|
1384
1828
|
|
|
1385
|
-
@streamable
|
|
1386
|
-
@dataclass(frozen=True)
|
|
1387
|
-
class CATSpendResponse(TransactionEndpointResponse):
|
|
1388
|
-
transaction: TransactionRecord
|
|
1389
|
-
transaction_id: bytes32
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
1829
|
@streamable
|
|
1393
1830
|
@dataclass(frozen=True)
|
|
1394
1831
|
class _OfferEndpointResponse(TransactionEndpointResponse):
|