chia-blockchain 2.5.6rc2__py3-none-any.whl → 2.5.7rc2__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 +134 -75
- 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 +4 -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 -32
- 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 +14 -14
- chia/full_node/mempool_manager.py +67 -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 +51 -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/service_groups.py +3 -1
- 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.7rc2.dist-info}/METADATA +31 -31
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info}/RECORD +369 -241
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.dist-info}/WHEEL +1 -1
- {chia_blockchain-2.5.6rc2.dist-info → chia_blockchain-2.5.7rc2.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.7rc2.dist-info/licenses}/LICENSE +0 -0
|
@@ -78,8 +78,6 @@ class DIDWallet:
|
|
|
78
78
|
wallet: Wallet,
|
|
79
79
|
amount: uint64,
|
|
80
80
|
action_scope: WalletActionScope,
|
|
81
|
-
backups_ids: list[bytes32] = [],
|
|
82
|
-
num_of_backup_ids_needed: uint64 = None,
|
|
83
81
|
metadata: dict[str, str] = {},
|
|
84
82
|
name: Optional[str] = None,
|
|
85
83
|
fee: uint64 = uint64(0),
|
|
@@ -114,14 +112,10 @@ class DIDWallet:
|
|
|
114
112
|
if amount & 1 == 0:
|
|
115
113
|
raise ValueError("DID amount must be odd number")
|
|
116
114
|
|
|
117
|
-
if num_of_backup_ids_needed is None:
|
|
118
|
-
num_of_backup_ids_needed = uint64(len(backups_ids))
|
|
119
|
-
if num_of_backup_ids_needed > len(backups_ids):
|
|
120
|
-
raise ValueError("Cannot require more IDs than are known.")
|
|
121
115
|
self.did_info = DIDInfo(
|
|
122
116
|
origin_coin=None,
|
|
123
|
-
backup_ids=
|
|
124
|
-
num_of_backup_ids_needed=
|
|
117
|
+
backup_ids=[],
|
|
118
|
+
num_of_backup_ids_needed=uint64(0),
|
|
125
119
|
parent_info=[],
|
|
126
120
|
current_inner=None,
|
|
127
121
|
temp_coin=None,
|
|
@@ -229,6 +223,7 @@ class DIDWallet:
|
|
|
229
223
|
recovery_list: list[bytes32] = []
|
|
230
224
|
backup_required: int = num_verification.as_int()
|
|
231
225
|
if not did_recovery_is_nil(recovery_list_hash):
|
|
226
|
+
self.log.warning(f"DID {launch_coin.name().hex()} has a recovery list hash which has been deprecated.")
|
|
232
227
|
try:
|
|
233
228
|
for did in inner_solution.rest().rest().rest().rest().rest().as_python():
|
|
234
229
|
recovery_list.append(bytes32(did[0]))
|
|
@@ -329,7 +324,7 @@ class DIDWallet:
|
|
|
329
324
|
for coin in record.additions:
|
|
330
325
|
hint_dict = {
|
|
331
326
|
coin_id: bytes32(memos[0])
|
|
332
|
-
for coin_id, memos in record.memos
|
|
327
|
+
for coin_id, memos in record.memos.items()
|
|
333
328
|
if len(memos) > 0 and len(memos[0]) == 32
|
|
334
329
|
}
|
|
335
330
|
if (await self.wallet_state_manager.does_coin_belong_to_wallet(coin, self.id(), hint_dict)) and (
|
|
@@ -653,12 +648,12 @@ class DIDWallet:
|
|
|
653
648
|
action_scope,
|
|
654
649
|
extra_conditions=(AssertCoinAnnouncement(asserted_id=coin_name, asserted_msg=coin_name),),
|
|
655
650
|
)
|
|
651
|
+
to_ph = await action_scope.get_puzzle_hash(self.wallet_state_manager, override_reuse_puzhash_with=True)
|
|
656
652
|
did_record = TransactionRecord(
|
|
657
653
|
confirmed_at_height=uint32(0),
|
|
658
|
-
created_at_time=uint64(
|
|
659
|
-
to_puzzle_hash=
|
|
660
|
-
|
|
661
|
-
),
|
|
654
|
+
created_at_time=uint64(time.time()),
|
|
655
|
+
to_puzzle_hash=to_ph,
|
|
656
|
+
to_address=self.wallet_state_manager.encode_puzzle_hash(to_ph),
|
|
662
657
|
amount=uint64(coin.amount),
|
|
663
658
|
fee_amount=uint64(0),
|
|
664
659
|
confirmed=False,
|
|
@@ -671,7 +666,7 @@ class DIDWallet:
|
|
|
671
666
|
trade_id=None,
|
|
672
667
|
type=uint32(TransactionType.OUTGOING_TX.value),
|
|
673
668
|
name=bytes32.secret(),
|
|
674
|
-
memos=
|
|
669
|
+
memos=compute_memos(spend_bundle),
|
|
675
670
|
valid_times=parse_timelock_info(extra_conditions),
|
|
676
671
|
)
|
|
677
672
|
|
|
@@ -682,7 +677,6 @@ class DIDWallet:
|
|
|
682
677
|
self,
|
|
683
678
|
new_puzhash: bytes32,
|
|
684
679
|
fee: uint64,
|
|
685
|
-
with_recovery: bool,
|
|
686
680
|
action_scope: WalletActionScope,
|
|
687
681
|
extra_conditions: tuple[Condition, ...] = tuple(),
|
|
688
682
|
) -> None:
|
|
@@ -690,7 +684,6 @@ class DIDWallet:
|
|
|
690
684
|
Transfer the current DID to another owner
|
|
691
685
|
:param new_puzhash: New owner's p2_puzzle
|
|
692
686
|
:param fee: Transaction fee
|
|
693
|
-
:param with_recovery: A boolean indicates if the recovery info will be sent through the blockchain
|
|
694
687
|
:return: Spend bundle
|
|
695
688
|
"""
|
|
696
689
|
assert self.did_info.current_inner is not None
|
|
@@ -698,9 +691,8 @@ class DIDWallet:
|
|
|
698
691
|
coin = await self.get_coin()
|
|
699
692
|
backup_ids = []
|
|
700
693
|
backup_required = uint64(0)
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
backup_required = self.did_info.num_of_backup_ids_needed
|
|
694
|
+
backup_ids = self.did_info.backup_ids
|
|
695
|
+
backup_required = self.did_info.num_of_backup_ids_needed
|
|
704
696
|
new_did_puzhash = did_wallet_puzzles.get_inner_puzhash_by_p2(
|
|
705
697
|
p2_puzhash=new_puzhash,
|
|
706
698
|
recovery_list=backup_ids,
|
|
@@ -713,12 +705,7 @@ class DIDWallet:
|
|
|
713
705
|
primaries=[CreateCoin(new_did_puzhash, uint64(coin.amount), [new_puzhash])],
|
|
714
706
|
conditions=(*extra_conditions, CreateCoinAnnouncement(coin.name())),
|
|
715
707
|
)
|
|
716
|
-
|
|
717
|
-
# innerpuz solution is
|
|
718
|
-
# (mode, p2_solution)
|
|
719
|
-
innersol: Program = Program.to([2, p2_solution])
|
|
720
|
-
if with_recovery:
|
|
721
|
-
innersol = Program.to([2, p2_solution, [], [], [], self.did_info.backup_ids])
|
|
708
|
+
innersol = Program.to([2, p2_solution, [], [], [], self.did_info.backup_ids])
|
|
722
709
|
# full solution is (corehash parent_info my_amount innerpuz_reveal solution)
|
|
723
710
|
|
|
724
711
|
full_puzzle: Program = create_singleton_puzzle(
|
|
@@ -747,12 +734,12 @@ class DIDWallet:
|
|
|
747
734
|
action_scope,
|
|
748
735
|
extra_conditions=(AssertCoinAnnouncement(asserted_id=coin_name, asserted_msg=coin_name),),
|
|
749
736
|
)
|
|
737
|
+
to_ph = await action_scope.get_puzzle_hash(self.wallet_state_manager, override_reuse_puzhash_with=True)
|
|
750
738
|
did_record = TransactionRecord(
|
|
751
739
|
confirmed_at_height=uint32(0),
|
|
752
|
-
created_at_time=uint64(
|
|
753
|
-
to_puzzle_hash=
|
|
754
|
-
|
|
755
|
-
),
|
|
740
|
+
created_at_time=uint64(time.time()),
|
|
741
|
+
to_puzzle_hash=to_ph,
|
|
742
|
+
to_address=self.wallet_state_manager.encode_puzzle_hash(to_ph),
|
|
756
743
|
amount=uint64(coin.amount),
|
|
757
744
|
fee_amount=fee,
|
|
758
745
|
confirmed=False,
|
|
@@ -765,7 +752,7 @@ class DIDWallet:
|
|
|
765
752
|
trade_id=None,
|
|
766
753
|
type=uint32(TransactionType.OUTGOING_TX.value),
|
|
767
754
|
name=spend_bundle.name(),
|
|
768
|
-
memos=
|
|
755
|
+
memos=compute_memos(spend_bundle),
|
|
769
756
|
valid_times=parse_timelock_info(extra_conditions),
|
|
770
757
|
)
|
|
771
758
|
|
|
@@ -830,8 +817,9 @@ class DIDWallet:
|
|
|
830
817
|
unsigned_spend_bundle = WalletSpendBundle(list_of_coinspends, G2Element())
|
|
831
818
|
tx = TransactionRecord(
|
|
832
819
|
confirmed_at_height=uint32(0),
|
|
833
|
-
created_at_time=uint64(
|
|
820
|
+
created_at_time=uint64(time.time()),
|
|
834
821
|
to_puzzle_hash=p2_ph,
|
|
822
|
+
to_address=self.wallet_state_manager.encode_puzzle_hash(p2_ph),
|
|
835
823
|
amount=uint64(coin.amount),
|
|
836
824
|
fee_amount=uint64(0),
|
|
837
825
|
confirmed=False,
|
|
@@ -844,286 +832,12 @@ class DIDWallet:
|
|
|
844
832
|
trade_id=None,
|
|
845
833
|
type=uint32(TransactionType.OUTGOING_TX.value),
|
|
846
834
|
name=unsigned_spend_bundle.name(),
|
|
847
|
-
memos=
|
|
835
|
+
memos=compute_memos(unsigned_spend_bundle),
|
|
848
836
|
valid_times=parse_timelock_info(extra_conditions),
|
|
849
837
|
)
|
|
850
838
|
async with action_scope.use() as interface:
|
|
851
839
|
interface.side_effects.transactions.append(tx)
|
|
852
840
|
|
|
853
|
-
# This is used to cash out, or update the id_list
|
|
854
|
-
async def create_exit_spend(self, puzhash: bytes32, action_scope: WalletActionScope) -> None:
|
|
855
|
-
assert self.did_info.current_inner is not None
|
|
856
|
-
assert self.did_info.origin_coin is not None
|
|
857
|
-
coin = await self.get_coin()
|
|
858
|
-
message_puz = Program.to((1, [[51, puzhash, coin.amount - 1, [puzhash]], [51, 0x00, -113]]))
|
|
859
|
-
|
|
860
|
-
# innerpuz solution is (mode p2_solution)
|
|
861
|
-
innersol: Program = Program.to([1, [[], message_puz, []]])
|
|
862
|
-
# full solution is (corehash parent_info my_amount innerpuz_reveal solution)
|
|
863
|
-
innerpuz: Program = self.did_info.current_inner
|
|
864
|
-
|
|
865
|
-
full_puzzle: Program = create_singleton_puzzle(
|
|
866
|
-
innerpuz,
|
|
867
|
-
self.did_info.origin_coin.name(),
|
|
868
|
-
)
|
|
869
|
-
parent_info = self.get_parent_for_coin(coin)
|
|
870
|
-
assert parent_info is not None
|
|
871
|
-
fullsol = Program.to(
|
|
872
|
-
[
|
|
873
|
-
[
|
|
874
|
-
parent_info.parent_name,
|
|
875
|
-
parent_info.inner_puzzle_hash,
|
|
876
|
-
parent_info.amount,
|
|
877
|
-
],
|
|
878
|
-
coin.amount,
|
|
879
|
-
innersol,
|
|
880
|
-
]
|
|
881
|
-
)
|
|
882
|
-
list_of_coinspends = [make_spend(coin, full_puzzle, fullsol)]
|
|
883
|
-
spend_bundle = WalletSpendBundle(list_of_coinspends, G2Element())
|
|
884
|
-
|
|
885
|
-
async with action_scope.use() as interface:
|
|
886
|
-
interface.side_effects.transactions.append(
|
|
887
|
-
TransactionRecord(
|
|
888
|
-
confirmed_at_height=uint32(0),
|
|
889
|
-
created_at_time=uint64(int(time.time())),
|
|
890
|
-
to_puzzle_hash=await action_scope.get_puzzle_hash(
|
|
891
|
-
self.wallet_state_manager, override_reuse_puzhash_with=True
|
|
892
|
-
),
|
|
893
|
-
amount=uint64(coin.amount),
|
|
894
|
-
fee_amount=uint64(0),
|
|
895
|
-
confirmed=False,
|
|
896
|
-
sent=uint32(0),
|
|
897
|
-
spend_bundle=spend_bundle,
|
|
898
|
-
additions=spend_bundle.additions(),
|
|
899
|
-
removals=spend_bundle.removals(),
|
|
900
|
-
wallet_id=self.wallet_info.id,
|
|
901
|
-
sent_to=[],
|
|
902
|
-
trade_id=None,
|
|
903
|
-
type=uint32(TransactionType.OUTGOING_TX.value),
|
|
904
|
-
name=bytes32.secret(),
|
|
905
|
-
memos=list(compute_memos(spend_bundle).items()),
|
|
906
|
-
valid_times=ConditionValidTimes(),
|
|
907
|
-
)
|
|
908
|
-
)
|
|
909
|
-
|
|
910
|
-
# Pushes a spend bundle to create a message coin on the blockchain
|
|
911
|
-
# Returns a spend bundle for the recoverer to spend the message coin
|
|
912
|
-
async def create_attestment(
|
|
913
|
-
self,
|
|
914
|
-
recovering_coin_name: bytes32,
|
|
915
|
-
newpuz: bytes32,
|
|
916
|
-
pubkey: G1Element,
|
|
917
|
-
action_scope: WalletActionScope,
|
|
918
|
-
extra_conditions: tuple[Condition, ...] = tuple(),
|
|
919
|
-
) -> tuple[WalletSpendBundle, str]:
|
|
920
|
-
"""
|
|
921
|
-
Create an attestment
|
|
922
|
-
TODO:
|
|
923
|
-
1. We should use/respect `action_scope.config.tx_config` (reuse_puzhash and co)
|
|
924
|
-
2. We should take a fee as it's a requirement for every transaction function to do so
|
|
925
|
-
:param recovering_coin_name: Coin ID of the DID
|
|
926
|
-
:param newpuz: New puzzle hash
|
|
927
|
-
:param pubkey: New wallet pubkey
|
|
928
|
-
:return: (Spend bundle, attest string)
|
|
929
|
-
"""
|
|
930
|
-
assert self.did_info.current_inner is not None
|
|
931
|
-
assert self.did_info.origin_coin is not None
|
|
932
|
-
coin = await self.get_coin()
|
|
933
|
-
message = did_wallet_puzzles.create_recovery_message_puzzle(recovering_coin_name, newpuz, pubkey)
|
|
934
|
-
innermessage = message.get_tree_hash()
|
|
935
|
-
innerpuz: Program = self.did_info.current_inner
|
|
936
|
-
uncurried = did_wallet_puzzles.uncurry_innerpuz(innerpuz)
|
|
937
|
-
assert uncurried is not None
|
|
938
|
-
p2_puzzle = uncurried[0]
|
|
939
|
-
# innerpuz solution is (mode, p2_solution)
|
|
940
|
-
p2_solution = self.standard_wallet.make_solution(
|
|
941
|
-
primaries=[
|
|
942
|
-
CreateCoin(innerpuz.get_tree_hash(), uint64(coin.amount), [p2_puzzle.get_tree_hash()]),
|
|
943
|
-
CreateCoin(innermessage, uint64(0)),
|
|
944
|
-
],
|
|
945
|
-
conditions=extra_conditions,
|
|
946
|
-
)
|
|
947
|
-
innersol = Program.to([1, p2_solution])
|
|
948
|
-
|
|
949
|
-
# full solution is (corehash parent_info my_amount innerpuz_reveal solution)
|
|
950
|
-
full_puzzle: Program = create_singleton_puzzle(
|
|
951
|
-
innerpuz,
|
|
952
|
-
self.did_info.origin_coin.name(),
|
|
953
|
-
)
|
|
954
|
-
parent_info = self.get_parent_for_coin(coin)
|
|
955
|
-
assert parent_info is not None
|
|
956
|
-
|
|
957
|
-
fullsol = Program.to(
|
|
958
|
-
[
|
|
959
|
-
[
|
|
960
|
-
parent_info.parent_name,
|
|
961
|
-
parent_info.inner_puzzle_hash,
|
|
962
|
-
parent_info.amount,
|
|
963
|
-
],
|
|
964
|
-
coin.amount,
|
|
965
|
-
innersol,
|
|
966
|
-
]
|
|
967
|
-
)
|
|
968
|
-
list_of_coinspends = [make_spend(coin, full_puzzle, fullsol)]
|
|
969
|
-
message_spend = did_wallet_puzzles.create_spend_for_message(coin.name(), recovering_coin_name, newpuz, pubkey)
|
|
970
|
-
message_spend_bundle = WalletSpendBundle([message_spend], AugSchemeMPL.aggregate([]))
|
|
971
|
-
spend_bundle = WalletSpendBundle(list_of_coinspends, G2Element())
|
|
972
|
-
did_record = TransactionRecord(
|
|
973
|
-
confirmed_at_height=uint32(0),
|
|
974
|
-
created_at_time=uint64(int(time.time())),
|
|
975
|
-
to_puzzle_hash=await action_scope.get_puzzle_hash(
|
|
976
|
-
self.wallet_state_manager, override_reuse_puzhash_with=True
|
|
977
|
-
),
|
|
978
|
-
amount=uint64(coin.amount),
|
|
979
|
-
fee_amount=uint64(0),
|
|
980
|
-
confirmed=False,
|
|
981
|
-
sent=uint32(0),
|
|
982
|
-
spend_bundle=spend_bundle,
|
|
983
|
-
additions=spend_bundle.additions(),
|
|
984
|
-
removals=spend_bundle.removals(),
|
|
985
|
-
wallet_id=self.wallet_info.id,
|
|
986
|
-
sent_to=[],
|
|
987
|
-
trade_id=None,
|
|
988
|
-
type=uint32(TransactionType.INCOMING_TX.value),
|
|
989
|
-
name=bytes32.secret(),
|
|
990
|
-
memos=list(compute_memos(spend_bundle).items()),
|
|
991
|
-
valid_times=parse_timelock_info(extra_conditions),
|
|
992
|
-
)
|
|
993
|
-
async with action_scope.use() as interface:
|
|
994
|
-
interface.side_effects.transactions.append(did_record)
|
|
995
|
-
attest_str: str = f"{self.get_my_DID()}:{bytes(message_spend_bundle).hex()}:{coin.parent_coin_info.hex()}:"
|
|
996
|
-
attest_str += f"{self.did_info.current_inner.get_tree_hash().hex()}:{coin.amount}"
|
|
997
|
-
return message_spend_bundle, attest_str
|
|
998
|
-
|
|
999
|
-
async def get_info_for_recovery(self) -> Optional[tuple[bytes32, bytes32, uint64]]:
|
|
1000
|
-
assert self.did_info.current_inner is not None
|
|
1001
|
-
assert self.did_info.origin_coin is not None
|
|
1002
|
-
try:
|
|
1003
|
-
coin = await self.get_coin()
|
|
1004
|
-
except RuntimeError:
|
|
1005
|
-
return None
|
|
1006
|
-
parent = coin.parent_coin_info
|
|
1007
|
-
innerpuzhash = self.did_info.current_inner.get_tree_hash()
|
|
1008
|
-
amount = uint64(coin.amount)
|
|
1009
|
-
return (parent, innerpuzhash, amount)
|
|
1010
|
-
|
|
1011
|
-
async def load_attest_files_for_recovery_spend(self, attest_data: list[str]) -> tuple[list, WalletSpendBundle]:
|
|
1012
|
-
spend_bundle_list = []
|
|
1013
|
-
info_dict = {}
|
|
1014
|
-
for attest in attest_data:
|
|
1015
|
-
info = attest.split(":")
|
|
1016
|
-
info_dict[info[0]] = [
|
|
1017
|
-
bytes.fromhex(info[2]),
|
|
1018
|
-
bytes.fromhex(info[3]),
|
|
1019
|
-
uint64(info[4]),
|
|
1020
|
-
]
|
|
1021
|
-
new_sb = WalletSpendBundle.from_bytes(bytes.fromhex(info[1]))
|
|
1022
|
-
spend_bundle_list.append(new_sb)
|
|
1023
|
-
# info_dict {0xidentity: "(0xparent_info 0xinnerpuz amount)"}
|
|
1024
|
-
my_recovery_list: list[bytes32] = self.did_info.backup_ids
|
|
1025
|
-
|
|
1026
|
-
# convert info dict into recovery list - same order as wallet
|
|
1027
|
-
info_list = []
|
|
1028
|
-
for entry in my_recovery_list:
|
|
1029
|
-
if entry.hex() in info_dict:
|
|
1030
|
-
info_list.append(
|
|
1031
|
-
[
|
|
1032
|
-
info_dict[entry.hex()][0],
|
|
1033
|
-
info_dict[entry.hex()][1],
|
|
1034
|
-
info_dict[entry.hex()][2],
|
|
1035
|
-
]
|
|
1036
|
-
)
|
|
1037
|
-
else:
|
|
1038
|
-
info_list.append([])
|
|
1039
|
-
message_spend_bundle = WalletSpendBundle.aggregate(spend_bundle_list)
|
|
1040
|
-
return info_list, message_spend_bundle
|
|
1041
|
-
|
|
1042
|
-
async def recovery_spend(
|
|
1043
|
-
self,
|
|
1044
|
-
coin: Coin,
|
|
1045
|
-
puzhash: bytes32,
|
|
1046
|
-
parent_innerpuzhash_amounts_for_recovery_ids: list[tuple[bytes, bytes, int]],
|
|
1047
|
-
pubkey: G1Element,
|
|
1048
|
-
spend_bundle: WalletSpendBundle,
|
|
1049
|
-
action_scope: WalletActionScope,
|
|
1050
|
-
) -> None:
|
|
1051
|
-
assert self.did_info.origin_coin is not None
|
|
1052
|
-
|
|
1053
|
-
# innersol is mode new_amount_or_p2_solution new_inner_puzhash parent_innerpuzhash_amounts_for_recovery_ids pubkey recovery_list_reveal my_id) # noqa
|
|
1054
|
-
innersol: Program = Program.to(
|
|
1055
|
-
[
|
|
1056
|
-
0,
|
|
1057
|
-
coin.amount,
|
|
1058
|
-
puzhash,
|
|
1059
|
-
parent_innerpuzhash_amounts_for_recovery_ids,
|
|
1060
|
-
bytes(pubkey),
|
|
1061
|
-
self.did_info.backup_ids,
|
|
1062
|
-
coin.name(),
|
|
1063
|
-
]
|
|
1064
|
-
)
|
|
1065
|
-
# full solution is (parent_info my_amount solution)
|
|
1066
|
-
assert self.did_info.current_inner is not None
|
|
1067
|
-
innerpuz: Program = self.did_info.current_inner
|
|
1068
|
-
full_puzzle: Program = create_singleton_puzzle(
|
|
1069
|
-
innerpuz,
|
|
1070
|
-
self.did_info.origin_coin.name(),
|
|
1071
|
-
)
|
|
1072
|
-
parent_info = self.get_parent_for_coin(coin)
|
|
1073
|
-
assert parent_info is not None
|
|
1074
|
-
fullsol = Program.to(
|
|
1075
|
-
[
|
|
1076
|
-
[
|
|
1077
|
-
parent_info.parent_name,
|
|
1078
|
-
parent_info.inner_puzzle_hash,
|
|
1079
|
-
parent_info.amount,
|
|
1080
|
-
],
|
|
1081
|
-
coin.amount,
|
|
1082
|
-
innersol,
|
|
1083
|
-
]
|
|
1084
|
-
)
|
|
1085
|
-
list_of_coinspends = [make_spend(coin, full_puzzle, fullsol)]
|
|
1086
|
-
|
|
1087
|
-
spend_bundle = spend_bundle.aggregate([spend_bundle, WalletSpendBundle(list_of_coinspends, G2Element())])
|
|
1088
|
-
|
|
1089
|
-
async with action_scope.use() as interface:
|
|
1090
|
-
interface.side_effects.transactions.append(
|
|
1091
|
-
TransactionRecord(
|
|
1092
|
-
confirmed_at_height=uint32(0),
|
|
1093
|
-
created_at_time=uint64(int(time.time())),
|
|
1094
|
-
to_puzzle_hash=await action_scope.get_puzzle_hash(
|
|
1095
|
-
self.wallet_state_manager, override_reuse_puzhash_with=True
|
|
1096
|
-
),
|
|
1097
|
-
amount=uint64(coin.amount),
|
|
1098
|
-
fee_amount=uint64(0),
|
|
1099
|
-
confirmed=False,
|
|
1100
|
-
sent=uint32(0),
|
|
1101
|
-
spend_bundle=spend_bundle,
|
|
1102
|
-
additions=spend_bundle.additions(),
|
|
1103
|
-
removals=spend_bundle.removals(),
|
|
1104
|
-
wallet_id=self.wallet_info.id,
|
|
1105
|
-
sent_to=[],
|
|
1106
|
-
trade_id=None,
|
|
1107
|
-
type=uint32(TransactionType.OUTGOING_TX.value),
|
|
1108
|
-
name=bytes32.secret(),
|
|
1109
|
-
memos=list(compute_memos(spend_bundle).items()),
|
|
1110
|
-
valid_times=ConditionValidTimes(),
|
|
1111
|
-
)
|
|
1112
|
-
)
|
|
1113
|
-
new_did_info = DIDInfo(
|
|
1114
|
-
origin_coin=self.did_info.origin_coin,
|
|
1115
|
-
backup_ids=self.did_info.backup_ids,
|
|
1116
|
-
num_of_backup_ids_needed=self.did_info.num_of_backup_ids_needed,
|
|
1117
|
-
parent_info=self.did_info.parent_info,
|
|
1118
|
-
current_inner=self.did_info.current_inner,
|
|
1119
|
-
temp_coin=self.did_info.temp_coin,
|
|
1120
|
-
temp_puzhash=self.did_info.temp_puzhash,
|
|
1121
|
-
temp_pubkey=self.did_info.temp_pubkey,
|
|
1122
|
-
sent_recovery_transaction=True,
|
|
1123
|
-
metadata=self.did_info.metadata,
|
|
1124
|
-
)
|
|
1125
|
-
await self.save_info(new_did_info)
|
|
1126
|
-
|
|
1127
841
|
async def get_did_innerpuz(
|
|
1128
842
|
self,
|
|
1129
843
|
action_scope: WalletActionScope,
|
|
@@ -1311,13 +1025,13 @@ class DIDWallet:
|
|
|
1311
1025
|
assert self.did_info.origin_coin is not None
|
|
1312
1026
|
assert self.did_info.current_inner is not None
|
|
1313
1027
|
|
|
1028
|
+
to_ph = await action_scope.get_puzzle_hash(self.wallet_state_manager, override_reuse_puzhash_with=True)
|
|
1314
1029
|
did_record = TransactionRecord(
|
|
1315
1030
|
confirmed_at_height=uint32(0),
|
|
1316
|
-
created_at_time=uint64(
|
|
1031
|
+
created_at_time=uint64(time.time()),
|
|
1317
1032
|
amount=uint64(amount),
|
|
1318
|
-
to_puzzle_hash=
|
|
1319
|
-
|
|
1320
|
-
),
|
|
1033
|
+
to_puzzle_hash=to_ph,
|
|
1034
|
+
to_address=self.wallet_state_manager.encode_puzzle_hash(to_ph),
|
|
1321
1035
|
fee_amount=fee,
|
|
1322
1036
|
confirmed=False,
|
|
1323
1037
|
sent=uint32(0),
|
|
@@ -1329,7 +1043,7 @@ class DIDWallet:
|
|
|
1329
1043
|
trade_id=None,
|
|
1330
1044
|
type=uint32(TransactionType.INCOMING_TX.value),
|
|
1331
1045
|
name=full_spend.name(),
|
|
1332
|
-
memos=
|
|
1046
|
+
memos={},
|
|
1333
1047
|
valid_times=ConditionValidTimes(),
|
|
1334
1048
|
)
|
|
1335
1049
|
async with action_scope.use() as interface:
|
|
@@ -1395,25 +1109,6 @@ class DIDWallet:
|
|
|
1395
1109
|
)
|
|
1396
1110
|
await self.save_info(did_info)
|
|
1397
1111
|
|
|
1398
|
-
async def update_recovery_list(self, recover_list: list[bytes32], num_of_backup_ids_needed: uint64) -> bool:
|
|
1399
|
-
if num_of_backup_ids_needed > len(recover_list):
|
|
1400
|
-
return False
|
|
1401
|
-
did_info = DIDInfo(
|
|
1402
|
-
origin_coin=self.did_info.origin_coin,
|
|
1403
|
-
backup_ids=recover_list,
|
|
1404
|
-
num_of_backup_ids_needed=num_of_backup_ids_needed,
|
|
1405
|
-
parent_info=self.did_info.parent_info,
|
|
1406
|
-
current_inner=self.did_info.current_inner,
|
|
1407
|
-
temp_coin=self.did_info.temp_coin,
|
|
1408
|
-
temp_puzhash=self.did_info.temp_puzhash,
|
|
1409
|
-
temp_pubkey=self.did_info.temp_pubkey,
|
|
1410
|
-
sent_recovery_transaction=self.did_info.sent_recovery_transaction,
|
|
1411
|
-
metadata=self.did_info.metadata,
|
|
1412
|
-
)
|
|
1413
|
-
await self.save_info(did_info)
|
|
1414
|
-
await self.wallet_state_manager.update_wallet_puzzle_hashes(self.wallet_info.id)
|
|
1415
|
-
return True
|
|
1416
|
-
|
|
1417
1112
|
async def update_metadata(self, metadata: dict[str, str]) -> bool:
|
|
1418
1113
|
# validate metadata
|
|
1419
1114
|
if not all(isinstance(k, str) and isinstance(v, str) for k, v in metadata.items()):
|
|
@@ -1476,12 +1171,12 @@ class DIDWallet:
|
|
|
1476
1171
|
:return: DIDInfo
|
|
1477
1172
|
"""
|
|
1478
1173
|
details = backup_data.split(":")
|
|
1479
|
-
origin = Coin(bytes32.fromhex(details[0]), bytes32.fromhex(details[1]), uint64(
|
|
1174
|
+
origin = Coin(bytes32.fromhex(details[0]), bytes32.fromhex(details[1]), uint64(details[2]))
|
|
1480
1175
|
backup_ids = []
|
|
1481
1176
|
if len(details[3]) > 0:
|
|
1482
1177
|
for d in details[3].split(","):
|
|
1483
1178
|
backup_ids.append(bytes32.from_hexstr(d))
|
|
1484
|
-
num_of_backup_ids_needed = uint64(
|
|
1179
|
+
num_of_backup_ids_needed = uint64(details[5])
|
|
1485
1180
|
if num_of_backup_ids_needed > len(backup_ids):
|
|
1486
1181
|
raise Exception
|
|
1487
1182
|
innerpuz: Program = Program.from_bytes(bytes.fromhex(details[4]))
|
|
@@ -217,7 +217,7 @@ def create_ownership_layer_transfer_solution(
|
|
|
217
217
|
"Creating a transfer solution with: DID:%s Inner_puzhash:%s trade_price:%s puzhash:%s",
|
|
218
218
|
new_did.hex(),
|
|
219
219
|
new_did_inner_hash.hex(),
|
|
220
|
-
|
|
220
|
+
trade_prices_list,
|
|
221
221
|
new_puzhash.hex(),
|
|
222
222
|
)
|
|
223
223
|
condition_list = [[51, new_puzhash, 1, [new_puzhash]], [-10, new_did, trade_prices_list, new_did_inner_hash]]
|
|
@@ -550,9 +550,9 @@ class NFTWallet:
|
|
|
550
550
|
name: Optional[str] = None,
|
|
551
551
|
) -> Any:
|
|
552
552
|
# Off the bat we don't support multiple profile but when we do this will have to change
|
|
553
|
-
for
|
|
554
|
-
if
|
|
555
|
-
return
|
|
553
|
+
for wsm_wallet in wallet_state_manager.wallets.values():
|
|
554
|
+
if wsm_wallet.type() == WalletType.NFT.value:
|
|
555
|
+
return wsm_wallet
|
|
556
556
|
|
|
557
557
|
# TODO: These are not the arguments to this function yet but they will be
|
|
558
558
|
return await cls.create_new_nft_wallet(
|
|
@@ -615,8 +615,9 @@ class NFTWallet:
|
|
|
615
615
|
}
|
|
616
616
|
tx = TransactionRecord(
|
|
617
617
|
confirmed_at_height=uint32(0),
|
|
618
|
-
created_at_time=uint64(
|
|
618
|
+
created_at_time=uint64(time.time()),
|
|
619
619
|
to_puzzle_hash=puzzle_hashes[0],
|
|
620
|
+
to_address=self.wallet_state_manager.encode_puzzle_hash(puzzle_hashes[0]),
|
|
620
621
|
amount=uint64(payment_sum),
|
|
621
622
|
fee_amount=fee,
|
|
622
623
|
confirmed=False,
|
|
@@ -629,7 +630,7 @@ class NFTWallet:
|
|
|
629
630
|
trade_id=None,
|
|
630
631
|
type=uint32(TransactionType.OUTGOING_TX.value),
|
|
631
632
|
name=spend_bundle.name(),
|
|
632
|
-
memos=
|
|
633
|
+
memos=compute_memos(spend_bundle),
|
|
633
634
|
valid_times=parse_timelock_info(extra_conditions),
|
|
634
635
|
)
|
|
635
636
|
|
|
@@ -1404,8 +1405,9 @@ class NFTWallet:
|
|
|
1404
1405
|
interface.side_effects.transactions.append(
|
|
1405
1406
|
TransactionRecord(
|
|
1406
1407
|
confirmed_at_height=uint32(0),
|
|
1407
|
-
created_at_time=uint64(
|
|
1408
|
+
created_at_time=uint64(time.time()),
|
|
1408
1409
|
to_puzzle_hash=innerpuz.get_tree_hash(),
|
|
1410
|
+
to_address=self.wallet_state_manager.encode_puzzle_hash(innerpuz.get_tree_hash()),
|
|
1409
1411
|
amount=uint64(1),
|
|
1410
1412
|
fee_amount=fee,
|
|
1411
1413
|
confirmed=False,
|
|
@@ -1418,7 +1420,7 @@ class NFTWallet:
|
|
|
1418
1420
|
trade_id=None,
|
|
1419
1421
|
type=uint32(TransactionType.OUTGOING_TX.value),
|
|
1420
1422
|
name=unsigned_spend_bundle.name(),
|
|
1421
|
-
memos=
|
|
1423
|
+
memos=compute_memos(unsigned_spend_bundle),
|
|
1422
1424
|
valid_times=parse_timelock_info(extra_conditions),
|
|
1423
1425
|
)
|
|
1424
1426
|
)
|
chia/wallet/puzzle_drivers.py
CHANGED
|
@@ -65,15 +65,14 @@ class PuzzleInfo:
|
|
|
65
65
|
return True
|
|
66
66
|
else:
|
|
67
67
|
return False
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
return self.also().check_type(types) # type: ignore
|
|
73
|
-
else:
|
|
74
|
-
return self.check_type(types)
|
|
68
|
+
elif self.type() == types[0]:
|
|
69
|
+
types.pop(0)
|
|
70
|
+
if self.also():
|
|
71
|
+
return self.also().check_type(types) # type: ignore
|
|
75
72
|
else:
|
|
76
|
-
return
|
|
73
|
+
return self.check_type(types)
|
|
74
|
+
else:
|
|
75
|
+
return False
|
|
77
76
|
|
|
78
77
|
|
|
79
78
|
@dataclass(frozen=True)
|
|
@@ -12,7 +12,6 @@ from chia.apis import ApiProtocolRegistry
|
|
|
12
12
|
from chia.consensus.constants import replace_str_to_bytes
|
|
13
13
|
from chia.consensus.default_constants import DEFAULT_CONSTANTS, update_testnet_overrides
|
|
14
14
|
from chia.protocols.outbound_message import NodeType
|
|
15
|
-
from chia.server.aliases import WalletService
|
|
16
15
|
from chia.server.resolve_peer_info import get_unresolved_peer_infos
|
|
17
16
|
from chia.server.signal_handlers import SignalHandlers
|
|
18
17
|
from chia.server.start_service import RpcInfo, Service, async_run
|
|
@@ -26,6 +25,7 @@ from chia.wallet.wallet_node import WalletNode
|
|
|
26
25
|
# See: https://bugs.python.org/issue29288
|
|
27
26
|
from chia.wallet.wallet_node_api import WalletNodeAPI
|
|
28
27
|
from chia.wallet.wallet_rpc_api import WalletRpcApi
|
|
28
|
+
from chia.wallet.wallet_service import WalletService
|
|
29
29
|
|
|
30
30
|
"".encode("idna")
|
|
31
31
|
|
chia/wallet/trade_manager.py
CHANGED
|
@@ -359,8 +359,9 @@ class TradeManager:
|
|
|
359
359
|
|
|
360
360
|
incoming_tx = TransactionRecord(
|
|
361
361
|
confirmed_at_height=uint32(0),
|
|
362
|
-
created_at_time=uint64(
|
|
362
|
+
created_at_time=uint64(time.time()),
|
|
363
363
|
to_puzzle_hash=new_ph,
|
|
364
|
+
to_address=self.wallet_state_manager.encode_puzzle_hash(new_ph),
|
|
364
365
|
amount=uint64(coin.amount),
|
|
365
366
|
fee_amount=fee,
|
|
366
367
|
confirmed=False,
|
|
@@ -373,7 +374,7 @@ class TradeManager:
|
|
|
373
374
|
trade_id=None,
|
|
374
375
|
type=uint32(TransactionType.INCOMING_TX.value),
|
|
375
376
|
name=cancellation_additions[0].name(),
|
|
376
|
-
memos=
|
|
377
|
+
memos={},
|
|
377
378
|
valid_times=valid_times,
|
|
378
379
|
)
|
|
379
380
|
all_txs.append(incoming_tx)
|
|
@@ -447,7 +448,7 @@ class TradeManager:
|
|
|
447
448
|
|
|
448
449
|
success, created_offer, error = result
|
|
449
450
|
|
|
450
|
-
now = uint64(
|
|
451
|
+
now = uint64(time.time())
|
|
451
452
|
trade_offer: TradeRecord = TradeRecord(
|
|
452
453
|
confirmed_at_index=uint32(0),
|
|
453
454
|
accepted_at_time=None,
|
|
@@ -726,8 +727,9 @@ class TradeManager:
|
|
|
726
727
|
txs.append(
|
|
727
728
|
TransactionRecord(
|
|
728
729
|
confirmed_at_height=uint32(0),
|
|
729
|
-
created_at_time=uint64(
|
|
730
|
+
created_at_time=uint64(time.time()),
|
|
730
731
|
to_puzzle_hash=to_puzzle_hash,
|
|
732
|
+
to_address=self.wallet_state_manager.encode_puzzle_hash(to_puzzle_hash),
|
|
731
733
|
amount=uint64(addition.amount),
|
|
732
734
|
fee_amount=uint64(0),
|
|
733
735
|
confirmed=False,
|
|
@@ -740,7 +742,7 @@ class TradeManager:
|
|
|
740
742
|
trade_id=offer.name(),
|
|
741
743
|
type=uint32(TransactionType.INCOMING_TRADE.value),
|
|
742
744
|
name=std_hash(final_spend_bundle.name() + addition.name()),
|
|
743
|
-
memos=
|
|
745
|
+
memos={coin_id: [hint] for coin_id, hint in hint_dict.items()},
|
|
744
746
|
valid_times=valid_times,
|
|
745
747
|
)
|
|
746
748
|
)
|
|
@@ -786,8 +788,9 @@ class TradeManager:
|
|
|
786
788
|
txs.append(
|
|
787
789
|
TransactionRecord(
|
|
788
790
|
confirmed_at_height=uint32(0),
|
|
789
|
-
created_at_time=uint64(
|
|
791
|
+
created_at_time=uint64(time.time()),
|
|
790
792
|
to_puzzle_hash=to_puzzle_hash,
|
|
793
|
+
to_address=self.wallet_state_manager.encode_puzzle_hash(to_puzzle_hash),
|
|
791
794
|
amount=uint64(sent_amount),
|
|
792
795
|
fee_amount=all_fees,
|
|
793
796
|
confirmed=False,
|
|
@@ -800,7 +803,7 @@ class TradeManager:
|
|
|
800
803
|
trade_id=offer.name(),
|
|
801
804
|
type=uint32(TransactionType.OUTGOING_TRADE.value),
|
|
802
805
|
name=std_hash(final_spend_bundle.name() + removal_tree_hash),
|
|
803
|
-
memos=
|
|
806
|
+
memos={coin_id: [hint] for coin_id, hint in hint_dict.items()},
|
|
804
807
|
valid_times=valid_times,
|
|
805
808
|
)
|
|
806
809
|
)
|
|
@@ -883,8 +886,8 @@ class TradeManager:
|
|
|
883
886
|
|
|
884
887
|
trade_record: TradeRecord = TradeRecord(
|
|
885
888
|
confirmed_at_index=uint32(0),
|
|
886
|
-
accepted_at_time=uint64(
|
|
887
|
-
created_at_time=uint64(
|
|
889
|
+
accepted_at_time=uint64(time.time()),
|
|
890
|
+
created_at_time=uint64(time.time()),
|
|
888
891
|
is_my_offer=False,
|
|
889
892
|
sent=uint32(0),
|
|
890
893
|
offer=bytes(complete_offer),
|