chia-blockchain 2.5.2rc2__py3-none-any.whl → 2.5.3rc2__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/__init__.py +7 -0
- chia/_tests/blockchain/blockchain_test_utils.py +1 -1
- chia/_tests/blockchain/test_augmented_chain.py +54 -5
- chia/_tests/blockchain/test_blockchain.py +5 -12
- chia/_tests/blockchain/test_blockchain_transactions.py +3 -5
- chia/_tests/blockchain/test_get_block_generator.py +2 -2
- chia/_tests/blockchain/test_lookup_fork_chain.py +2 -2
- chia/_tests/clvm/benchmark_costs.py +2 -1
- chia/_tests/clvm/coin_store.py +4 -3
- chia/_tests/clvm/test_chialisp_deserialization.py +2 -2
- chia/_tests/clvm/test_curry_and_treehash.py +1 -1
- chia/_tests/clvm/test_puzzle_compression.py +2 -2
- chia/_tests/clvm/test_puzzles.py +2 -2
- chia/_tests/clvm/test_singletons.py +2 -2
- chia/_tests/clvm/test_spend_sim.py +1 -1
- chia/_tests/cmds/cmd_test_utils.py +2 -2
- chia/_tests/cmds/test_click_types.py +2 -2
- chia/_tests/cmds/test_cmd_framework.py +6 -6
- chia/_tests/cmds/test_show.py +4 -3
- chia/_tests/cmds/test_tx_config_args.py +1 -1
- chia/_tests/cmds/testing_classes.py +2 -2
- chia/_tests/cmds/wallet/test_consts.py +2 -2
- chia/_tests/cmds/wallet/test_did.py +2 -2
- chia/_tests/cmds/wallet/test_nft.py +2 -2
- chia/_tests/cmds/wallet/test_notifications.py +3 -2
- chia/_tests/cmds/wallet/test_vcs.py +2 -2
- chia/_tests/cmds/wallet/test_wallet.py +4 -8
- chia/_tests/conftest.py +4 -3
- chia/_tests/connection_utils.py +2 -2
- chia/_tests/core/cmds/test_keys.py +1 -2
- chia/_tests/core/cmds/test_wallet.py +2 -2
- chia/_tests/core/consensus/test_block_creation.py +2 -2
- chia/_tests/core/consensus/test_pot_iterations.py +1 -1
- chia/_tests/core/custom_types/test_coin.py +2 -2
- chia/_tests/core/custom_types/test_proof_of_space.py +2 -2
- chia/_tests/core/custom_types/test_spend_bundle.py +2 -2
- chia/_tests/core/data_layer/conftest.py +1 -1
- chia/_tests/core/data_layer/test_data_layer.py +1 -1
- chia/_tests/core/data_layer/test_data_layer_util.py +1 -1
- chia/_tests/core/data_layer/test_data_rpc.py +2 -2
- chia/_tests/core/data_layer/test_data_store.py +1 -1
- chia/_tests/core/data_layer/test_data_store_schema.py +1 -1
- chia/_tests/core/data_layer/util.py +2 -1
- chia/_tests/core/farmer/test_farmer_api.py +1 -1
- chia/_tests/core/full_node/full_sync/test_full_sync.py +1 -7
- chia/_tests/core/full_node/ram_db.py +2 -1
- chia/_tests/core/full_node/stores/test_block_store.py +2 -2
- chia/_tests/core/full_node/stores/test_coin_store.py +2 -2
- chia/_tests/core/full_node/stores/test_full_node_store.py +3 -3
- chia/_tests/core/full_node/stores/test_hint_store.py +2 -2
- chia/_tests/core/full_node/stores/test_sync_store.py +1 -1
- chia/_tests/core/full_node/test_address_manager.py +1 -1
- chia/_tests/core/full_node/test_block_height_map.py +2 -2
- chia/_tests/core/full_node/test_conditions.py +1 -1
- chia/_tests/core/full_node/test_full_node.py +346 -164
- chia/_tests/core/full_node/test_generator_tools.py +3 -2
- chia/_tests/core/full_node/test_hint_management.py +2 -2
- chia/_tests/core/full_node/test_performance.py +2 -15
- chia/_tests/core/full_node/test_subscriptions.py +1 -1
- chia/_tests/core/full_node/test_transactions.py +186 -185
- chia/_tests/core/full_node/test_tx_processing_queue.py +1 -1
- chia/_tests/core/make_block_generator.py +2 -2
- chia/_tests/core/mempool/test_mempool.py +165 -22
- chia/_tests/core/mempool/test_mempool_fee_estimator.py +1 -1
- chia/_tests/core/mempool/test_mempool_fee_protocol.py +1 -1
- chia/_tests/core/mempool/test_mempool_manager.py +476 -66
- chia/_tests/core/mempool/test_mempool_performance.py +2 -2
- chia/_tests/core/mempool/test_singleton_fast_forward.py +19 -25
- chia/_tests/core/node_height.py +2 -1
- chia/_tests/core/server/test_capabilities.py +1 -1
- chia/_tests/core/server/test_dos.py +36 -28
- chia/_tests/core/server/test_loop.py +3 -3
- chia/_tests/core/server/test_rate_limits.py +1 -1
- chia/_tests/core/server/test_server.py +2 -2
- chia/_tests/core/services/test_services.py +1 -1
- chia/_tests/core/ssl/test_ssl.py +1 -1
- chia/_tests/core/test_coins.py +2 -1
- chia/_tests/core/test_cost_calculation.py +2 -2
- chia/_tests/core/test_crawler.py +2 -2
- chia/_tests/core/test_db_conversion.py +2 -2
- chia/_tests/core/test_db_validation.py +26 -13
- chia/_tests/core/test_farmer_harvester_rpc.py +2 -2
- chia/_tests/core/test_full_node_rpc.py +2 -2
- chia/_tests/core/test_merkle_set.py +2 -2
- chia/_tests/core/test_program.py +2 -2
- chia/_tests/core/test_rpc_util.py +1 -1
- chia/_tests/core/test_seeder.py +1 -1
- chia/_tests/core/util/test_block_cache.py +3 -3
- chia/_tests/core/util/test_jsonify.py +3 -2
- chia/_tests/core/util/test_keychain.py +3 -3
- chia/_tests/core/util/test_streamable.py +3 -4
- chia/_tests/environments/wallet.py +3 -2
- chia/_tests/farmer_harvester/test_farmer.py +3 -4
- chia/_tests/farmer_harvester/test_farmer_harvester.py +2 -2
- chia/_tests/farmer_harvester/test_filter_prefix_bits.py +2 -2
- chia/_tests/farmer_harvester/test_third_party_harvesters.py +3 -4
- chia/_tests/fee_estimation/test_fee_estimation_integration.py +1 -1
- chia/_tests/fee_estimation/test_fee_estimation_rpc.py +2 -2
- chia/_tests/fee_estimation/test_fee_estimation_unit_tests.py +1 -1
- chia/_tests/fee_estimation/test_mempoolitem_height_added.py +3 -4
- chia/_tests/generator/test_compression.py +20 -10
- chia/_tests/generator/test_rom.py +7 -9
- chia/_tests/plot_sync/test_delta.py +2 -2
- chia/_tests/plot_sync/test_plot_sync.py +2 -2
- chia/_tests/plot_sync/test_receiver.py +2 -2
- chia/_tests/plot_sync/test_sender.py +2 -2
- chia/_tests/plot_sync/test_sync_simulated.py +2 -2
- chia/_tests/plot_sync/util.py +3 -2
- chia/_tests/plotting/test_plot_manager.py +1 -1
- chia/_tests/pools/test_pool_cli_parsing.py +3 -2
- chia/_tests/pools/test_pool_cmdline.py +2 -2
- chia/_tests/pools/test_pool_puzzles_lifecycle.py +3 -3
- chia/_tests/pools/test_pool_rpc.py +4 -5
- chia/_tests/pools/test_pool_wallet.py +1 -1
- chia/_tests/pools/test_wallet_pool_store.py +2 -2
- chia/_tests/rpc/test_rpc_client.py +1 -1
- chia/_tests/rpc/test_rpc_server.py +1 -1
- chia/_tests/simulation/test_simulation.py +36 -8
- chia/_tests/simulation/test_simulator.py +5 -5
- chia/_tests/simulation/test_start_simulator.py +2 -2
- chia/_tests/timelord/test_new_peak.py +2 -2
- chia/_tests/tools/test_run_block.py +3 -2
- chia/_tests/util/benchmark_cost.py +2 -2
- chia/_tests/util/benchmarks.py +17 -6
- chia/_tests/util/blockchain.py +2 -1
- chia/_tests/util/blockchain_mock.py +9 -5
- chia/_tests/util/build_network_protocol_files.py +2 -1
- chia/_tests/util/constants.py +2 -1
- chia/_tests/util/full_sync.py +6 -3
- chia/_tests/util/gen_ssl_certs.py +2 -2
- chia/_tests/util/generator_tools_testing.py +4 -3
- chia/_tests/util/get_name_puzzle_conditions.py +2 -2
- chia/_tests/util/misc.py +16 -2
- chia/_tests/util/network_protocol_data.py +17 -7
- chia/_tests/util/run_block.py +6 -8
- chia/_tests/util/setup_nodes.py +4 -3
- chia/_tests/util/spend_sim.py +9 -5
- chia/_tests/util/test_condition_tools.py +2 -2
- chia/_tests/util/test_config.py +2 -1
- chia/_tests/util/test_errors.py +2 -1
- chia/_tests/util/test_full_block_utils.py +17 -7
- chia/_tests/util/test_misc.py +1 -1
- chia/_tests/util/test_network_protocol_test.py +24 -24
- chia/_tests/util/test_replace_str_to_bytes.py +2 -2
- chia/_tests/util/test_trusted_peer.py +1 -1
- chia/_tests/util/time_out_assert.py +20 -7
- chia/_tests/wallet/cat_wallet/test_cat_lifecycle.py +1 -1
- chia/_tests/wallet/cat_wallet/test_cat_outer_puzzle.py +2 -2
- chia/_tests/wallet/cat_wallet/test_cat_wallet.py +5 -6
- chia/_tests/wallet/cat_wallet/test_offer_lifecycle.py +17 -15
- chia/_tests/wallet/cat_wallet/test_trades.py +2 -2
- chia/_tests/wallet/clawback/test_clawback_lifecycle.py +2 -2
- chia/_tests/wallet/clawback/test_clawback_metadata.py +2 -2
- chia/_tests/wallet/conftest.py +3 -3
- chia/_tests/wallet/db_wallet/test_db_graftroot.py +3 -5
- chia/_tests/wallet/db_wallet/test_dl_offers.py +2 -2
- chia/_tests/wallet/db_wallet/test_dl_wallet.py +433 -384
- chia/_tests/wallet/did_wallet/test_did.py +3 -3
- chia/_tests/wallet/nft_wallet/test_nft_1_offers.py +2 -2
- chia/_tests/wallet/nft_wallet/test_nft_bulk_mint.py +2 -2
- chia/_tests/wallet/nft_wallet/test_nft_lifecycle.py +3 -4
- chia/_tests/wallet/nft_wallet/test_nft_offers.py +1293 -703
- chia/_tests/wallet/nft_wallet/test_nft_puzzles.py +28 -30
- chia/_tests/wallet/nft_wallet/test_nft_wallet.py +2 -2
- chia/_tests/wallet/nft_wallet/test_ownership_outer_puzzle.py +2 -2
- chia/_tests/wallet/rpc/config.py +1 -1
- chia/_tests/wallet/rpc/test_dl_wallet_rpc.py +2 -2
- chia/_tests/wallet/rpc/test_wallet_rpc.py +20 -77
- chia/_tests/wallet/simple_sync/test_simple_sync_protocol.py +9 -7
- chia/_tests/wallet/sync/test_wallet_sync.py +79 -31
- chia/_tests/wallet/test_clvm_streamable.py +2 -2
- chia/_tests/wallet/test_coin_management.py +7 -7
- chia/_tests/wallet/test_coin_selection.py +20 -2
- chia/_tests/wallet/test_conditions.py +2 -2
- chia/_tests/wallet/test_debug_spend_bundle.py +2 -2
- chia/_tests/wallet/test_new_wallet_protocol.py +2 -2
- chia/_tests/wallet/test_nft_store.py +2 -2
- chia/_tests/wallet/test_notifications.py +2 -2
- chia/_tests/wallet/test_puzzle_store.py +2 -2
- chia/_tests/wallet/test_sign_coin_spends.py +2 -2
- chia/_tests/wallet/test_signer_protocol.py +3 -3
- chia/_tests/wallet/test_singleton.py +3 -11
- chia/_tests/wallet/test_singleton_lifecycle_fast.py +12 -13
- chia/_tests/wallet/test_singleton_store.py +2 -4
- chia/_tests/wallet/test_transaction_store.py +2 -2
- chia/_tests/wallet/test_util.py +2 -2
- chia/_tests/wallet/test_wallet.py +53 -49
- chia/_tests/wallet/test_wallet_action_scope.py +24 -6
- chia/_tests/wallet/test_wallet_blockchain.py +1 -1
- chia/_tests/wallet/test_wallet_coin_store.py +2 -2
- chia/_tests/wallet/test_wallet_interested_store.py +2 -2
- chia/_tests/wallet/test_wallet_node.py +3 -3
- chia/_tests/wallet/test_wallet_retry.py +3 -3
- chia/_tests/wallet/test_wallet_state_manager.py +8 -8
- chia/_tests/wallet/test_wallet_test_framework.py +1 -1
- chia/_tests/wallet/test_wallet_trade_store.py +2 -2
- chia/_tests/wallet/test_wallet_utils.py +2 -2
- chia/_tests/wallet/vc_wallet/test_cr_outer_puzzle.py +3 -2
- chia/_tests/wallet/vc_wallet/test_vc_lifecycle.py +15 -15
- chia/_tests/wallet/vc_wallet/test_vc_wallet.py +5 -3
- chia/_tests/wallet/wallet_block_tools.py +15 -7
- chia/_tests/weight_proof/test_weight_proof.py +3 -3
- chia/cmds/chia.py +0 -2
- chia/cmds/cmd_classes.py +3 -3
- chia/cmds/cmd_helpers.py +4 -4
- chia/cmds/cmds_util.py +2 -2
- chia/cmds/coin_funcs.py +3 -2
- chia/cmds/coins.py +1 -1
- chia/cmds/data.py +2 -2
- chia/cmds/data_funcs.py +3 -2
- chia/cmds/db_upgrade_func.py +2 -2
- chia/cmds/db_validate_func.py +15 -8
- chia/cmds/farm.py +2 -4
- chia/cmds/keys.py +0 -2
- chia/cmds/keys_funcs.py +1 -1
- chia/cmds/netspace_funcs.py +2 -1
- chia/cmds/param_types.py +2 -2
- chia/cmds/plotnft.py +2 -2
- chia/cmds/plotnft_funcs.py +2 -2
- chia/cmds/rpc.py +1 -1
- chia/cmds/show.py +1 -2
- chia/cmds/show_funcs.py +6 -3
- chia/cmds/signer.py +1 -2
- chia/cmds/sim.py +1 -2
- chia/cmds/sim_funcs.py +2 -2
- chia/cmds/wallet.py +2 -2
- chia/cmds/wallet_funcs.py +4 -11
- chia/consensus/block_body_validation.py +3 -4
- chia/consensus/block_creation.py +10 -6
- chia/consensus/block_header_validation.py +3 -4
- chia/consensus/block_record.py +2 -3
- chia/consensus/block_rewards.py +1 -1
- chia/consensus/blockchain.py +20 -17
- chia/consensus/blockchain_interface.py +5 -4
- chia/consensus/coinbase.py +2 -2
- chia/consensus/constants.py +1 -1
- chia/consensus/cost_calculator.py +2 -1
- chia/consensus/default_constants.py +4 -3
- chia/consensus/deficit.py +3 -2
- chia/consensus/difficulty_adjustment.py +8 -9
- chia/consensus/find_fork_point.py +4 -3
- chia/consensus/full_block_to_block_record.py +4 -3
- chia/consensus/get_block_challenge.py +4 -3
- chia/consensus/get_block_generator.py +3 -2
- chia/consensus/make_sub_epoch_summary.py +3 -2
- chia/consensus/multiprocess_validation.py +9 -4
- chia/consensus/pos_quality.py +1 -1
- chia/consensus/pot_iterations.py +4 -3
- chia/consensus/vdf_info_computation.py +4 -3
- chia/daemon/client.py +1 -1
- chia/daemon/keychain_server.py +1 -1
- chia/daemon/server.py +1 -1
- chia/daemon/windows_signal.py +1 -1
- chia/data_layer/data_layer.py +4 -3
- chia/data_layer/data_layer_errors.py +1 -1
- chia/data_layer/data_layer_util.py +2 -2
- chia/data_layer/data_layer_wallet.py +47 -69
- chia/data_layer/data_store.py +1 -1
- chia/data_layer/dl_wallet_store.py +5 -6
- chia/data_layer/download_data.py +1 -1
- chia/data_layer/s3_plugin_service.py +4 -4
- chia/data_layer/singleton_record.py +23 -0
- chia/data_layer/util/benchmark.py +2 -1
- chia/farmer/farmer.py +4 -6
- chia/farmer/farmer_api.py +4 -6
- chia/full_node/bitcoin_fee_estimator.py +2 -1
- chia/full_node/block_height_map.py +2 -2
- chia/full_node/block_store.py +8 -9
- chia/{util → full_node}/check_fork_next_block.py +2 -1
- chia/full_node/coin_store.py +10 -10
- chia/full_node/fee_estimate.py +2 -1
- chia/full_node/fee_estimation.py +2 -1
- chia/full_node/fee_estimator.py +2 -1
- chia/full_node/fee_estimator_interface.py +1 -1
- chia/full_node/fee_history.py +2 -1
- chia/full_node/fee_tracker.py +2 -1
- chia/full_node/full_node.py +15 -13
- chia/full_node/full_node_api.py +12 -32
- chia/full_node/full_node_store.py +4 -3
- chia/full_node/hint_management.py +2 -1
- chia/full_node/hint_store.py +3 -3
- chia/full_node/mempool.py +80 -12
- chia/full_node/mempool_check_conditions.py +6 -7
- chia/full_node/mempool_manager.py +168 -21
- chia/full_node/pending_tx_cache.py +2 -2
- chia/full_node/subscriptions.py +2 -2
- chia/full_node/sync_store.py +2 -3
- chia/full_node/tx_processing_queue.py +2 -1
- chia/full_node/weight_proof.py +5 -8
- chia/harvester/harvester.py +5 -3
- chia/harvester/harvester_api.py +2 -2
- chia/introducer/introducer.py +30 -2
- chia/introducer/introducer_api.py +9 -1
- chia/legacy/keyring.py +1 -2
- chia/plot_sync/exceptions.py +2 -1
- chia/plot_sync/receiver.py +2 -2
- chia/plot_sync/sender.py +1 -1
- chia/plotting/cache.py +2 -2
- chia/plotting/check_plots.py +4 -2
- chia/plotting/create_plots.py +1 -1
- chia/plotting/manager.py +3 -3
- chia/plotting/util.py +2 -2
- chia/pools/pool_config.py +1 -1
- chia/pools/pool_puzzles.py +23 -17
- chia/pools/pool_wallet.py +22 -9
- chia/pools/pool_wallet_info.py +2 -2
- chia/protocols/farmer_protocol.py +3 -6
- chia/protocols/full_node_protocol.py +3 -2
- chia/protocols/harvester_protocol.py +3 -4
- chia/protocols/pool_protocol.py +2 -2
- chia/protocols/shared_protocol.py +2 -1
- chia/protocols/timelord_protocol.py +4 -4
- chia/protocols/wallet_protocol.py +2 -2
- chia/rpc/data_layer_rpc_api.py +3 -4
- chia/rpc/data_layer_rpc_client.py +3 -2
- chia/rpc/farmer_rpc_api.py +2 -2
- chia/rpc/farmer_rpc_client.py +2 -1
- chia/rpc/full_node_rpc_api.py +3 -2
- chia/rpc/full_node_rpc_client.py +3 -2
- chia/rpc/harvester_rpc_api.py +2 -1
- chia/rpc/rpc_client.py +2 -2
- chia/rpc/rpc_server.py +1 -1
- chia/rpc/wallet_request_types.py +2 -62
- chia/rpc/wallet_rpc_api.py +98 -628
- chia/rpc/wallet_rpc_client.py +5 -253
- chia/seeder/crawl_store.py +1 -1
- chia/seeder/crawler.py +2 -2
- chia/seeder/peer_record.py +2 -1
- chia/seeder/start_crawler.py +3 -1
- chia/server/address_manager.py +2 -1
- chia/server/address_manager_store.py +1 -1
- chia/server/capabilities.py +2 -1
- chia/server/introducer_peers.py +2 -1
- chia/server/node_discovery.py +1 -1
- chia/server/outbound_message.py +2 -1
- chia/server/server.py +2 -2
- chia/server/start_data_layer.py +2 -1
- chia/server/start_farmer.py +3 -1
- chia/server/start_full_node.py +4 -2
- chia/server/start_harvester.py +3 -1
- chia/server/start_introducer.py +12 -1
- chia/server/start_service.py +2 -1
- chia/server/start_timelord.py +3 -1
- chia/server/start_wallet.py +3 -1
- chia/server/upnp.py +1 -2
- chia/server/ws_connection.py +3 -4
- chia/simulator/add_blocks_in_batches.py +5 -3
- chia/simulator/block_tools.py +16 -12
- chia/simulator/full_node_simulator.py +9 -14
- chia/simulator/setup_services.py +5 -3
- chia/simulator/simulator_full_node_rpc_api.py +3 -2
- chia/simulator/simulator_full_node_rpc_client.py +3 -2
- chia/simulator/simulator_protocol.py +3 -2
- chia/simulator/simulator_test_tools.py +2 -2
- chia/simulator/start_simulator.py +3 -2
- chia/simulator/wallet_tools.py +3 -4
- chia/timelord/iters_from_block.py +4 -4
- chia/timelord/timelord.py +7 -12
- chia/timelord/timelord_api.py +3 -3
- chia/timelord/timelord_state.py +4 -3
- chia/types/block_protocol.py +2 -2
- chia/types/blockchain_format/coin.py +2 -2
- chia/types/blockchain_format/program.py +1 -1
- chia/types/blockchain_format/proof_of_space.py +3 -4
- chia/types/blockchain_format/tree_hash.py +1 -1
- chia/types/blockchain_format/vdf.py +3 -4
- chia/types/clvm_cost.py +1 -1
- chia/types/coin_record.py +4 -3
- chia/types/coin_spend.py +1 -1
- chia/types/eligible_coin_spends.py +9 -5
- chia/types/fee_rate.py +1 -1
- chia/types/generator_types.py +3 -3
- chia/types/internal_mempool_item.py +3 -2
- chia/types/mempool_item.py +10 -3
- chia/types/mempool_submission_status.py +2 -1
- chia/types/mojos.py +1 -1
- chia/types/peer_info.py +2 -1
- chia/types/transaction_queue_entry.py +2 -1
- chia/types/unfinished_header_block.py +4 -4
- chia/types/validation_state.py +2 -1
- chia/types/weight_proof.py +1 -9
- chia/util/augmented_chain.py +20 -9
- chia/util/block_cache.py +8 -4
- chia/util/condition_tools.py +2 -2
- chia/util/full_block_utils.py +3 -4
- chia/util/generator_tools.py +2 -2
- chia/util/initial-config.yaml +2 -11
- chia/util/network.py +2 -2
- chia/util/prev_transaction_block.py +2 -1
- chia/util/task_timing.py +1 -1
- chia/util/vdf_prover.py +3 -3
- chia/util/ws_message.py +1 -1
- chia/wallet/cat_wallet/cat_info.py +3 -2
- chia/wallet/cat_wallet/cat_outer_puzzle.py +3 -2
- chia/wallet/cat_wallet/cat_utils.py +6 -4
- chia/wallet/cat_wallet/cat_wallet.py +16 -18
- chia/wallet/cat_wallet/lineage_store.py +2 -1
- chia/wallet/coin_selection.py +5 -5
- chia/wallet/conditions.py +22 -16
- chia/wallet/db_wallet/db_wallet_puzzles.py +15 -15
- chia/wallet/derivation_record.py +2 -2
- chia/wallet/derive_keys.py +2 -2
- chia/wallet/did_wallet/did_info.py +3 -2
- chia/wallet/did_wallet/did_wallet.py +41 -19
- chia/wallet/did_wallet/did_wallet_puzzles.py +18 -12
- chia/wallet/driver_protocol.py +1 -1
- chia/wallet/lineage_proof.py +3 -2
- chia/wallet/nft_wallet/metadata_outer_puzzle.py +6 -7
- chia/wallet/nft_wallet/nft_info.py +5 -5
- chia/wallet/nft_wallet/nft_puzzle_utils.py +293 -0
- chia/wallet/nft_wallet/nft_puzzles.py +21 -298
- chia/wallet/nft_wallet/nft_wallet.py +47 -62
- chia/wallet/nft_wallet/ownership_outer_puzzle.py +4 -8
- chia/wallet/nft_wallet/singleton_outer_puzzle.py +3 -2
- chia/wallet/nft_wallet/transfer_program_puzzle.py +6 -10
- chia/wallet/nft_wallet/uncurry_nft.py +6 -8
- chia/wallet/notification_manager.py +5 -5
- chia/wallet/notification_store.py +3 -2
- chia/wallet/outer_puzzles.py +2 -1
- chia/wallet/puzzles/clawback/drivers.py +21 -8
- chia/wallet/puzzles/clawback/metadata.py +3 -2
- chia/wallet/puzzles/clawback/puzzle_decorator.py +5 -4
- chia/wallet/puzzles/deployed_puzzle_hashes.json +0 -10
- chia/wallet/puzzles/p2_conditions.py +3 -2
- chia/wallet/puzzles/p2_delegated_conditions.py +3 -2
- chia/wallet/puzzles/p2_delegated_puzzle.py +3 -2
- chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.py +3 -3
- chia/wallet/puzzles/p2_m_of_n_delegate_direct.py +3 -2
- chia/wallet/puzzles/p2_puzzle_hash.py +4 -3
- chia/wallet/puzzles/puzzle_utils.py +3 -2
- chia/wallet/puzzles/singleton_top_layer.py +26 -10
- chia/wallet/puzzles/singleton_top_layer_v1_1.py +21 -9
- chia/wallet/puzzles/tails.py +21 -129
- chia/wallet/signer_protocol.py +3 -2
- chia/wallet/singleton.py +12 -6
- chia/wallet/singleton_record.py +3 -2
- chia/wallet/trade_manager.py +31 -55
- chia/wallet/trade_record.py +3 -2
- chia/wallet/trading/offer.py +14 -13
- chia/wallet/trading/trade_store.py +3 -4
- chia/wallet/transaction_record.py +2 -2
- chia/wallet/util/blind_signer_tl.py +3 -2
- chia/wallet/util/compute_hints.py +3 -2
- chia/wallet/util/compute_memos.py +2 -2
- chia/wallet/util/curry_and_treehash.py +1 -2
- chia/wallet/util/merkle_tree.py +1 -1
- chia/wallet/util/merkle_utils.py +1 -1
- chia/wallet/util/new_peak_queue.py +2 -1
- chia/wallet/util/notifications.py +5 -4
- chia/wallet/util/peer_request_cache.py +3 -2
- chia/wallet/util/puzzle_compression.py +6 -4
- chia/wallet/util/puzzle_decorator.py +6 -4
- chia/wallet/util/query_filter.py +3 -2
- chia/wallet/util/tx_config.py +3 -3
- chia/wallet/util/wallet_sync_utils.py +2 -2
- chia/wallet/util/wallet_types.py +2 -3
- chia/wallet/vc_wallet/cr_cat_drivers.py +18 -22
- chia/wallet/vc_wallet/cr_cat_wallet.py +14 -10
- chia/wallet/vc_wallet/cr_outer_puzzle.py +2 -2
- chia/wallet/vc_wallet/vc_drivers.py +50 -68
- chia/wallet/vc_wallet/vc_store.py +2 -2
- chia/wallet/vc_wallet/vc_wallet.py +47 -15
- chia/wallet/wallet.py +51 -46
- chia/wallet/wallet_action_scope.py +4 -0
- chia/wallet/wallet_blockchain.py +12 -7
- chia/wallet/wallet_coin_record.py +3 -2
- chia/wallet/wallet_coin_store.py +3 -2
- chia/wallet/wallet_info.py +2 -1
- chia/wallet/wallet_interested_store.py +3 -2
- chia/wallet/wallet_nft_store.py +4 -4
- chia/wallet/wallet_node.py +3 -4
- chia/wallet/wallet_pool_store.py +3 -4
- chia/wallet/wallet_protocol.py +19 -5
- chia/wallet/wallet_puzzle_store.py +2 -2
- chia/wallet/wallet_retry_store.py +3 -6
- chia/wallet/wallet_singleton_store.py +2 -2
- chia/wallet/wallet_state_manager.py +20 -197
- chia/wallet/wallet_transaction_store.py +2 -2
- chia/wallet/wallet_user_store.py +2 -1
- chia/wallet/wallet_weight_proof_handler.py +3 -2
- {chia_blockchain-2.5.2rc2.dist-info → chia_blockchain-2.5.3rc2.dist-info}/METADATA +3 -2
- chia_blockchain-2.5.3rc2.dist-info/RECORD +891 -0
- mozilla-ca/cacert.pem +64 -33
- chia/_tests/clvm/test_condition_codes.py +0 -13
- chia/_tests/cmds/wallet/test_dao.py +0 -565
- chia/_tests/wallet/dao_wallet/__init__.py +0 -0
- chia/_tests/wallet/dao_wallet/config.py +0 -3
- chia/_tests/wallet/dao_wallet/test_dao_clvm.py +0 -1330
- chia/_tests/wallet/dao_wallet/test_dao_wallets.py +0 -3488
- chia/cmds/dao.py +0 -1064
- chia/cmds/dao_funcs.py +0 -598
- chia/consensus/puzzles/__init__.py +0 -0
- chia/consensus/puzzles/chialisp_deserialisation.clsp +0 -69
- chia/consensus/puzzles/chialisp_deserialisation.clsp.hex +0 -1
- chia/consensus/puzzles/rom_bootstrap_generator.clsp +0 -37
- chia/consensus/puzzles/rom_bootstrap_generator.clsp.hex +0 -1
- chia/full_node/puzzles/__init__.py +0 -0
- chia/full_node/puzzles/block_program_zero.clsp +0 -14
- chia/full_node/puzzles/block_program_zero.clsp.hex +0 -1
- chia/full_node/puzzles/decompress_coin_spend_entry.clsp +0 -5
- chia/full_node/puzzles/decompress_coin_spend_entry.clsp.hex +0 -1
- chia/full_node/puzzles/decompress_coin_spend_entry_with_prefix.clsp +0 -7
- chia/full_node/puzzles/decompress_coin_spend_entry_with_prefix.clsp.hex +0 -1
- chia/full_node/puzzles/decompress_puzzle.clsp +0 -6
- chia/full_node/puzzles/decompress_puzzle.clsp.hex +0 -1
- chia/pools/puzzles/__init__.py +0 -0
- chia/pools/puzzles/pool_member_innerpuz.clsp +0 -70
- chia/pools/puzzles/pool_member_innerpuz.clsp.hex +0 -1
- chia/pools/puzzles/pool_waitingroom_innerpuz.clsp +0 -69
- chia/pools/puzzles/pool_waitingroom_innerpuz.clsp.hex +0 -1
- chia/simulator/simulator_constants.py +0 -13
- chia/types/blockchain_format/foliage.py +0 -8
- chia/types/blockchain_format/pool_target.py +0 -5
- chia/types/blockchain_format/reward_chain_block.py +0 -6
- chia/types/blockchain_format/sized_bytes.py +0 -11
- chia/util/ints.py +0 -19
- chia/wallet/cat_wallet/dao_cat_info.py +0 -28
- chia/wallet/cat_wallet/dao_cat_wallet.py +0 -669
- chia/wallet/cat_wallet/puzzles/__init__.py +0 -0
- chia/wallet/cat_wallet/puzzles/cat_truths.clib +0 -31
- chia/wallet/cat_wallet/puzzles/cat_v2.clsp +0 -397
- chia/wallet/cat_wallet/puzzles/cat_v2.clsp.hex +0 -1
- chia/wallet/cat_wallet/puzzles/delegated_tail.clsp +0 -25
- chia/wallet/cat_wallet/puzzles/delegated_tail.clsp.hex +0 -1
- chia/wallet/cat_wallet/puzzles/everything_with_signature.clsp +0 -15
- chia/wallet/cat_wallet/puzzles/everything_with_signature.clsp.hex +0 -1
- chia/wallet/cat_wallet/puzzles/genesis_by_coin_id.clsp +0 -26
- chia/wallet/cat_wallet/puzzles/genesis_by_coin_id.clsp.hex +0 -1
- chia/wallet/cat_wallet/puzzles/genesis_by_coin_id_or_singleton.clsp +0 -42
- chia/wallet/cat_wallet/puzzles/genesis_by_coin_id_or_singleton.clsp.hex +0 -1
- chia/wallet/cat_wallet/puzzles/genesis_by_puzzle_hash.clsp +0 -24
- chia/wallet/cat_wallet/puzzles/genesis_by_puzzle_hash.clsp.hex +0 -1
- chia/wallet/dao_wallet/__init__.py +0 -0
- chia/wallet/dao_wallet/dao_info.py +0 -61
- chia/wallet/dao_wallet/dao_utils.py +0 -811
- chia/wallet/dao_wallet/dao_wallet.py +0 -2119
- chia/wallet/did_wallet/puzzles/__init__.py +0 -0
- chia/wallet/did_wallet/puzzles/did_innerpuz.clsp +0 -135
- chia/wallet/did_wallet/puzzles/did_innerpuz.clsp.hex +0 -1
- chia/wallet/payment.py +0 -33
- chia/wallet/puzzles/augmented_condition.clsp +0 -13
- chia/wallet/puzzles/augmented_condition.clsp.hex +0 -1
- chia/wallet/puzzles/condition_codes.clib +0 -77
- chia/wallet/puzzles/curry-and-treehash.clib +0 -102
- chia/wallet/puzzles/curry.clib +0 -135
- chia/wallet/puzzles/curry_by_index.clib +0 -16
- chia/wallet/puzzles/dao_cat_eve.clsp +0 -17
- chia/wallet/puzzles/dao_cat_eve.clsp.hex +0 -1
- chia/wallet/puzzles/dao_cat_launcher.clsp +0 -36
- chia/wallet/puzzles/dao_cat_launcher.clsp.hex +0 -1
- chia/wallet/puzzles/dao_finished_state.clsp +0 -35
- chia/wallet/puzzles/dao_finished_state.clsp.hex +0 -1
- chia/wallet/puzzles/dao_finished_state.clsp.hex.sha256tree +0 -1
- chia/wallet/puzzles/dao_lockup.clsp +0 -288
- chia/wallet/puzzles/dao_lockup.clsp.hex +0 -1
- chia/wallet/puzzles/dao_lockup.clsp.hex.sha256tree +0 -1
- chia/wallet/puzzles/dao_proposal.clsp +0 -377
- chia/wallet/puzzles/dao_proposal.clsp.hex +0 -1
- chia/wallet/puzzles/dao_proposal.clsp.hex.sha256tree +0 -1
- chia/wallet/puzzles/dao_proposal_timer.clsp +0 -78
- chia/wallet/puzzles/dao_proposal_timer.clsp.hex +0 -1
- chia/wallet/puzzles/dao_proposal_timer.clsp.hex.sha256tree +0 -1
- chia/wallet/puzzles/dao_proposal_validator.clsp +0 -87
- chia/wallet/puzzles/dao_proposal_validator.clsp.hex +0 -1
- chia/wallet/puzzles/dao_proposal_validator.clsp.hex.sha256tree +0 -1
- chia/wallet/puzzles/dao_spend_p2_singleton_v2.clsp +0 -240
- chia/wallet/puzzles/dao_spend_p2_singleton_v2.clsp.hex +0 -1
- chia/wallet/puzzles/dao_spend_p2_singleton_v2.clsp.hex.sha256tree +0 -1
- chia/wallet/puzzles/dao_treasury.clsp +0 -115
- chia/wallet/puzzles/dao_treasury.clsp.hex +0 -1
- chia/wallet/puzzles/dao_update_proposal.clsp +0 -44
- chia/wallet/puzzles/dao_update_proposal.clsp.hex +0 -1
- chia/wallet/puzzles/json.clib +0 -25
- chia/wallet/puzzles/merkle_utils.clib +0 -18
- chia/wallet/puzzles/notification.clsp +0 -7
- chia/wallet/puzzles/notification.clsp.hex +0 -1
- chia/wallet/puzzles/p2_1_of_n.clsp +0 -22
- chia/wallet/puzzles/p2_1_of_n.clsp.hex +0 -1
- chia/wallet/puzzles/p2_conditions.clsp +0 -3
- chia/wallet/puzzles/p2_conditions.clsp.hex +0 -1
- chia/wallet/puzzles/p2_delegated_conditions.clsp +0 -18
- chia/wallet/puzzles/p2_delegated_conditions.clsp.hex +0 -1
- chia/wallet/puzzles/p2_delegated_puzzle.clsp +0 -19
- chia/wallet/puzzles/p2_delegated_puzzle.clsp.hex +0 -1
- chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.clsp +0 -91
- chia/wallet/puzzles/p2_delegated_puzzle_or_hidden_puzzle.clsp.hex +0 -1
- chia/wallet/puzzles/p2_m_of_n_delegate_direct.clsp +0 -108
- chia/wallet/puzzles/p2_m_of_n_delegate_direct.clsp.hex +0 -1
- chia/wallet/puzzles/p2_parent.clsp +0 -19
- chia/wallet/puzzles/p2_parent.clsp.hex +0 -1
- chia/wallet/puzzles/p2_puzzle_hash.clsp +0 -18
- chia/wallet/puzzles/p2_puzzle_hash.clsp.hex +0 -1
- chia/wallet/puzzles/p2_singleton.clsp +0 -30
- chia/wallet/puzzles/p2_singleton.clsp.hex +0 -1
- chia/wallet/puzzles/p2_singleton_aggregator.clsp +0 -81
- chia/wallet/puzzles/p2_singleton_aggregator.clsp.hex +0 -1
- chia/wallet/puzzles/p2_singleton_or_delayed_puzhash.clsp +0 -50
- chia/wallet/puzzles/p2_singleton_or_delayed_puzhash.clsp.hex +0 -1
- chia/wallet/puzzles/p2_singleton_via_delegated_puzzle.clsp +0 -47
- chia/wallet/puzzles/p2_singleton_via_delegated_puzzle.clsp.hex +0 -1
- chia/wallet/puzzles/settlement_payments.clsp +0 -49
- chia/wallet/puzzles/settlement_payments.clsp.hex +0 -1
- chia/wallet/puzzles/sha256tree.clib +0 -11
- chia/wallet/puzzles/singleton_launcher.clsp +0 -16
- chia/wallet/puzzles/singleton_launcher.clsp.hex +0 -1
- chia/wallet/puzzles/singleton_top_layer.clsp +0 -177
- chia/wallet/puzzles/singleton_top_layer.clsp.hex +0 -1
- chia/wallet/puzzles/singleton_top_layer_v1_1.clsp +0 -107
- chia/wallet/puzzles/singleton_top_layer_v1_1.clsp.hex +0 -1
- chia/wallet/puzzles/singleton_truths.clib +0 -21
- chia/wallet/vc_wallet/cr_puzzles/__init__.py +0 -0
- chia/wallet/vc_wallet/cr_puzzles/conditions_w_fee_announce.clsp +0 -3
- chia/wallet/vc_wallet/cr_puzzles/conditions_w_fee_announce.clsp.hex +0 -1
- chia/wallet/vc_wallet/cr_puzzles/credential_restriction.clsp +0 -304
- chia/wallet/vc_wallet/cr_puzzles/credential_restriction.clsp.hex +0 -1
- chia/wallet/vc_wallet/cr_puzzles/flag_proofs_checker.clsp +0 -45
- chia/wallet/vc_wallet/cr_puzzles/flag_proofs_checker.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/__init__.py +0 -0
- chia/wallet/vc_wallet/vc_puzzles/covenant_layer.clsp +0 -30
- chia/wallet/vc_wallet/vc_puzzles/covenant_layer.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/eml_covenant_morpher.clsp +0 -75
- chia/wallet/vc_wallet/vc_puzzles/eml_covenant_morpher.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/eml_transfer_program_covenant_adapter.clsp +0 -32
- chia/wallet/vc_wallet/vc_puzzles/eml_transfer_program_covenant_adapter.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/eml_update_metadata_with_DID.clsp +0 -80
- chia/wallet/vc_wallet/vc_puzzles/eml_update_metadata_with_DID.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/exigent_metadata_layer.clsp +0 -163
- chia/wallet/vc_wallet/vc_puzzles/exigent_metadata_layer.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/p2_announced_delegated_puzzle.clsp +0 -16
- chia/wallet/vc_wallet/vc_puzzles/p2_announced_delegated_puzzle.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/standard_vc_backdoor_puzzle.clsp +0 -74
- chia/wallet/vc_wallet/vc_puzzles/standard_vc_backdoor_puzzle.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/std_parent_morpher.clsp +0 -23
- chia/wallet/vc_wallet/vc_puzzles/std_parent_morpher.clsp.hex +0 -1
- chia/wallet/vc_wallet/vc_puzzles/viral_backdoor.clsp +0 -64
- chia/wallet/vc_wallet/vc_puzzles/viral_backdoor.clsp.hex +0 -1
- chia_blockchain-2.5.2rc2.dist-info/RECORD +0 -1042
- {chia_blockchain-2.5.2rc2.dist-info → chia_blockchain-2.5.3rc2.dist-info}/LICENSE +0 -0
- {chia_blockchain-2.5.2rc2.dist-info → chia_blockchain-2.5.3rc2.dist-info}/WHEEL +0 -0
- {chia_blockchain-2.5.2rc2.dist-info → chia_blockchain-2.5.3rc2.dist-info}/entry_points.txt +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
a27440cdee44f910e80225592e51dc03721a9d819cc358165587fa2b34eef4cd
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
; This is a persistent timer for a proposal which allows it to have a relative time that survives despite it being recreated.
|
|
2
|
-
; The closing time is contained in the timelock and passed in to the solution, and confirmed via an announcement from the Proposal
|
|
3
|
-
; It creates/asserts announcements to pair it with the finishing spend of a proposal
|
|
4
|
-
|
|
5
|
-
(mod (
|
|
6
|
-
PROPOSAL_SELF_HASH
|
|
7
|
-
MY_PARENT_SINGLETON_STRUCT
|
|
8
|
-
proposal_yes_votes
|
|
9
|
-
proposal_total_votes
|
|
10
|
-
proposal_innerpuzhash
|
|
11
|
-
proposal_timelock
|
|
12
|
-
parent_parent
|
|
13
|
-
parent_amount
|
|
14
|
-
)
|
|
15
|
-
(include condition_codes.clib)
|
|
16
|
-
(include curry-and-treehash.clib)
|
|
17
|
-
(include *standard-cl-21*)
|
|
18
|
-
|
|
19
|
-
(defun calculate_singleton_puzzle_hash (PROPOSAL_SINGLETON_STRUCT inner_puzzle_hash)
|
|
20
|
-
(puzzle-hash-of-curried-function (f PROPOSAL_SINGLETON_STRUCT)
|
|
21
|
-
inner_puzzle_hash
|
|
22
|
-
(sha256tree PROPOSAL_SINGLETON_STRUCT)
|
|
23
|
-
)
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
(defun calculate_proposal_puzzlehash (
|
|
27
|
-
PROPOSAL_SINGLETON_STRUCT
|
|
28
|
-
PROPOSAL_SELF_HASH
|
|
29
|
-
proposal_yes_votes
|
|
30
|
-
proposal_total_votes
|
|
31
|
-
proposal_innerpuzhash
|
|
32
|
-
)
|
|
33
|
-
(calculate_singleton_puzzle_hash
|
|
34
|
-
PROPOSAL_SINGLETON_STRUCT
|
|
35
|
-
(puzzle-hash-of-curried-function PROPOSAL_SELF_HASH
|
|
36
|
-
(sha256 ONE proposal_total_votes)
|
|
37
|
-
(sha256 ONE proposal_yes_votes)
|
|
38
|
-
(sha256 ONE proposal_innerpuzhash)
|
|
39
|
-
(sha256 ONE (f (r PROPOSAL_SINGLETON_STRUCT)))
|
|
40
|
-
(sha256 ONE PROPOSAL_SELF_HASH)
|
|
41
|
-
)
|
|
42
|
-
)
|
|
43
|
-
)
|
|
44
|
-
|
|
45
|
-
; main
|
|
46
|
-
(list
|
|
47
|
-
(list ASSERT_HEIGHT_RELATIVE proposal_timelock)
|
|
48
|
-
(list CREATE_PUZZLE_ANNOUNCEMENT (f (r MY_PARENT_SINGLETON_STRUCT)))
|
|
49
|
-
(list
|
|
50
|
-
ASSERT_PUZZLE_ANNOUNCEMENT
|
|
51
|
-
(sha256
|
|
52
|
-
(calculate_proposal_puzzlehash
|
|
53
|
-
MY_PARENT_SINGLETON_STRUCT
|
|
54
|
-
PROPOSAL_SELF_HASH
|
|
55
|
-
proposal_yes_votes
|
|
56
|
-
proposal_total_votes
|
|
57
|
-
proposal_innerpuzhash
|
|
58
|
-
)
|
|
59
|
-
proposal_timelock
|
|
60
|
-
)
|
|
61
|
-
)
|
|
62
|
-
(list
|
|
63
|
-
ASSERT_MY_PARENT_ID
|
|
64
|
-
(sha256
|
|
65
|
-
parent_parent
|
|
66
|
-
(calculate_proposal_puzzlehash
|
|
67
|
-
MY_PARENT_SINGLETON_STRUCT
|
|
68
|
-
PROPOSAL_SELF_HASH
|
|
69
|
-
0
|
|
70
|
-
0
|
|
71
|
-
proposal_innerpuzhash
|
|
72
|
-
)
|
|
73
|
-
parent_amount
|
|
74
|
-
)
|
|
75
|
-
|
|
76
|
-
)
|
|
77
|
-
)
|
|
78
|
-
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ff02ffff01ff04ffff04ffff0152ffff04ff8200bfffff01808080ffff04ffff04ffff013effff04ffff05ffff06ff0b8080ffff01808080ffff04ffff04ffff013fffff04ffff0bffff02ff1effff04ff02ffff04ff0bffff04ff05ffff04ff17ffff04ff2fffff04ff5fff8080808080808080ff8200bf80ffff01808080ffff04ffff04ffff0147ffff04ffff0bff82017fffff02ff1effff04ff02ffff04ff0bffff04ff05ffff04ffff0180ffff04ffff0180ffff04ff5fff8080808080808080ff8202ff80ffff01808080ffff018080808080ffff04ffff01ffffff02ffff03ff05ffff01ff02ffff01ff02ff08ffff04ff02ffff04ffff06ff0580ffff04ffff0bffff0102ffff0bffff0101ffff010480ffff0bffff0102ffff0bffff0102ffff0bffff0101ffff010180ffff05ff058080ffff0bffff0102ff0bffff0bffff0101ffff018080808080ff8080808080ff0180ffff01ff02ffff010bff018080ff0180ff0bffff0102ffff01a0a12871fee210fb8619291eaea194581cbd2531e4b23759d225f6806923f63222ffff0bffff0102ffff0bffff0102ffff01a09dcf97a184f32623d11a73124ceb99a5709b083721e878a16d78f596718ba7b2ff0580ffff0bffff0102ffff02ff08ffff04ff02ffff04ff07ffff01ffa09dcf97a184f32623d11a73124ceb99a5709b083721e878a16d78f596718ba7b280808080ffff01a04bf5122f344554c53bde2ebb8cd2b7e3d1600ad631c385a5d7cce23c7785459a808080ffff02ffff03ffff07ff0580ffff01ff02ffff01ff0bffff0102ffff02ff0affff04ff02ffff04ffff05ff0580ff80808080ffff02ff0affff04ff02ffff04ffff06ff0580ff8080808080ff0180ffff01ff02ffff01ff0bffff0101ff0580ff018080ff0180ffff02ff0cffff04ff02ffff04ff09ffff04ff0bffff04ffff02ff0affff04ff02ffff04ff05ff80808080ff808080808080ff02ff16ffff04ff02ffff04ff05ffff04ffff02ff0cffff04ff02ffff04ff0bffff04ffff0bffff0101ff2f80ffff04ffff0bffff0101ff1780ffff04ffff0bffff0101ff5f80ffff04ffff0bffff0101ff1580ffff04ffff0bffff0101ff0b80ff808080808080808080ff8080808080ff018080
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
5526d8dc33b60a23c86ac7184e8f7051515af16dbb7489555f389b84a5313c84
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
(mod
|
|
2
|
-
(
|
|
3
|
-
SINGLETON_STRUCT ; (SINGLETON_MOD_HASH (SINGLETON_ID . LAUNCHER_PUZZLE_HASH))
|
|
4
|
-
PROPOSAL_SELF_HASH
|
|
5
|
-
PROPOSAL_MINIMUM_AMOUNT
|
|
6
|
-
PROPOSAL_EXCESS_PAYOUT_PUZ_HASH ; this is where the excess money gets paid out to
|
|
7
|
-
Attendance_Required ; this is passed in as a Truth from above
|
|
8
|
-
Pass_Margin ; this is a pass in as a Truth from above
|
|
9
|
-
(announcement_source delegated_puzzle_hash announcement_args)
|
|
10
|
-
(
|
|
11
|
-
proposal_id
|
|
12
|
-
total_votes
|
|
13
|
-
yes_votes
|
|
14
|
-
coin_parent
|
|
15
|
-
coin_amount
|
|
16
|
-
)
|
|
17
|
-
conditions
|
|
18
|
-
)
|
|
19
|
-
|
|
20
|
-
(include condition_codes.clib)
|
|
21
|
-
(include curry-and-treehash.clib)
|
|
22
|
-
(include utility_macros.clib)
|
|
23
|
-
(include *standard-cl-21*)
|
|
24
|
-
|
|
25
|
-
(defconstant TEN_THOUSAND 10000)
|
|
26
|
-
|
|
27
|
-
(defun-inline calculate_win_percentage (TOTAL PERCENTAGE)
|
|
28
|
-
(f (divmod (* TOTAL PERCENTAGE) TEN_THOUSAND))
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
(defun-inline calculate_full_puzzle_hash (SINGLETON_STRUCT inner_puzzle_hash)
|
|
32
|
-
(puzzle-hash-of-curried-function (f SINGLETON_STRUCT)
|
|
33
|
-
inner_puzzle_hash
|
|
34
|
-
(sha256tree SINGLETON_STRUCT)
|
|
35
|
-
)
|
|
36
|
-
)
|
|
37
|
-
|
|
38
|
-
(defun-inline calculate_proposal_puzzle (
|
|
39
|
-
PROPOSAL_SELF_HASH
|
|
40
|
-
proposal_singleton_id
|
|
41
|
-
proposal_yes_votes
|
|
42
|
-
proposal_total_votes
|
|
43
|
-
proposal_innerpuz_hash
|
|
44
|
-
)
|
|
45
|
-
(puzzle-hash-of-curried-function PROPOSAL_SELF_HASH
|
|
46
|
-
(sha256 ONE proposal_total_votes)
|
|
47
|
-
(sha256 ONE proposal_yes_votes)
|
|
48
|
-
(sha256 ONE proposal_innerpuz_hash)
|
|
49
|
-
(sha256 ONE proposal_singleton_id)
|
|
50
|
-
(sha256 ONE PROPOSAL_SELF_HASH)
|
|
51
|
-
)
|
|
52
|
-
)
|
|
53
|
-
|
|
54
|
-
(assert
|
|
55
|
-
; (= (sha256tree my_solution) announcement_args) - quex suggested this. We don't need to check it now. Can be used for future functionality.
|
|
56
|
-
(> (+ coin_amount ONE) PROPOSAL_MINIMUM_AMOUNT) ; >=
|
|
57
|
-
(gte total_votes Attendance_Required) ; TODO: we might want to change this to storing total cats and calculating like with yes votes
|
|
58
|
-
(gte yes_votes (calculate_win_percentage total_votes Pass_Margin))
|
|
59
|
-
(=
|
|
60
|
-
announcement_source
|
|
61
|
-
(calculate_coin_id
|
|
62
|
-
coin_parent
|
|
63
|
-
(calculate_full_puzzle_hash
|
|
64
|
-
(c (f SINGLETON_STRUCT) (c proposal_id (r (r SINGLETON_STRUCT))))
|
|
65
|
-
(calculate_proposal_puzzle
|
|
66
|
-
PROPOSAL_SELF_HASH
|
|
67
|
-
proposal_id
|
|
68
|
-
yes_votes ; this is where we validate the yes votes and total votes
|
|
69
|
-
total_votes
|
|
70
|
-
delegated_puzzle_hash
|
|
71
|
-
)
|
|
72
|
-
)
|
|
73
|
-
coin_amount
|
|
74
|
-
)
|
|
75
|
-
)
|
|
76
|
-
(c
|
|
77
|
-
(list CREATE_PUZZLE_ANNOUNCEMENT proposal_id) ; specify the proposal we're talking about
|
|
78
|
-
(if (> (- coin_amount 1) 0)
|
|
79
|
-
(c
|
|
80
|
-
(list CREATE_COIN PROPOSAL_EXCESS_PAYOUT_PUZ_HASH (- coin_amount 1) (list (f (r SINGLETON_STRUCT))))
|
|
81
|
-
conditions
|
|
82
|
-
)
|
|
83
|
-
conditions
|
|
84
|
-
)
|
|
85
|
-
)
|
|
86
|
-
)
|
|
87
|
-
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ff02ffff01ff02ffff03ffff15ffff10ff825effffff010180ff1780ffff01ff02ffff01ff02ffff03ffff02ff1effff04ff02ffff04ff820affffff04ff5fff8080808080ffff01ff02ffff01ff02ffff03ffff02ff1effff04ff02ffff04ff8216ffffff04ffff05ffff14ffff12ff820affff8200bf80ffff018227108080ff8080808080ffff01ff02ffff01ff02ffff03ffff09ff82027fffff02ff0affff04ff02ffff04ff822effffff04ffff02ff0cffff04ff02ffff04ffff05ffff04ffff05ff0580ffff04ff8204ffffff06ffff06ff058080808080ffff04ffff02ff0cffff04ff02ffff04ff0bffff04ffff0bffff0101ff820aff80ffff04ffff0bffff0101ff8216ff80ffff04ffff0bffff0101ff82057f80ffff04ffff0bffff0101ff8204ff80ffff04ffff0bffff0101ff0b80ff808080808080808080ffff04ffff02ff16ffff04ff02ffff04ffff04ffff05ff0580ffff04ff8204ffffff06ffff06ff0580808080ff80808080ff808080808080ffff04ff825effff80808080808080ffff01ff02ffff01ff04ffff04ffff013effff04ff8204ffffff01808080ffff02ffff03ffff15ffff11ff825effffff010180ffff018080ffff01ff02ffff01ff04ffff04ffff0133ffff04ff2fffff04ffff11ff825effffff010180ffff04ffff04ffff05ffff06ff058080ffff018080ffff018080808080ff8205ff80ff0180ffff01ff02ffff018205ffff018080ff018080ff0180ffff01ff02ffff01ff0880ff018080ff0180ff0180ffff01ff02ffff01ff0880ff018080ff0180ff0180ffff01ff02ffff01ff0880ff018080ff0180ff0180ffff01ff02ffff01ff0880ff018080ff0180ffff04ffff01ffffff02ffff03ff05ffff01ff02ffff01ff02ff08ffff04ff02ffff04ffff06ff0580ffff04ffff0bffff0102ffff0bffff0101ffff010480ffff0bffff0102ffff0bffff0102ffff0bffff0101ffff010180ffff05ff058080ffff0bffff0102ff0bffff0bffff0101ffff018080808080ff8080808080ff0180ffff01ff02ffff010bff018080ff0180ff0bffff0102ffff01a0a12871fee210fb8619291eaea194581cbd2531e4b23759d225f6806923f63222ffff0bffff0102ffff0bffff0102ffff01a09dcf97a184f32623d11a73124ceb99a5709b083721e878a16d78f596718ba7b2ff0580ffff0bffff0102ffff02ff08ffff04ff02ffff04ff07ffff01ffa09dcf97a184f32623d11a73124ceb99a5709b083721e878a16d78f596718ba7b280808080ffff01a04bf5122f344554c53bde2ebb8cd2b7e3d1600ad631c385a5d7cce23c7785459a808080ffff02ffff03ffff22ffff09ffff0dff0580ffff012080ffff09ffff0dff0b80ffff012080ffff15ff17ffff0181ff8080ffff01ff02ffff01ff0bff05ff0bff1780ff0180ffff01ff02ffff01ff0880ff018080ff0180ffff02ffff03ffff07ff0580ffff01ff02ffff01ff0bffff0102ffff02ff16ffff04ff02ffff04ffff05ff0580ff80808080ffff02ff16ffff04ff02ffff04ffff06ff0580ff8080808080ff0180ffff01ff02ffff01ff0bffff0101ff0580ff018080ff0180ff20ffff15ff0bff058080ff018080
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
edff0f36ca097ea55c867f8700cc4d48d267b91fd00ccee2db0fab6fe0645c67
|
|
@@ -1,240 +0,0 @@
|
|
|
1
|
-
(mod (
|
|
2
|
-
TREASURY_SINGLETON_STRUCT
|
|
3
|
-
CAT_MOD_HASH
|
|
4
|
-
CONDITIONS ; XCH conditions, to be generated by the treasury
|
|
5
|
-
LIST_OF_TAILHASH_CONDITIONS ; the delegated puzzlehash must be curried in to the proposal.
|
|
6
|
-
; Puzzlehash is only run in the last coin for that asset
|
|
7
|
-
; ((TAIL_HASH CONDITIONS) (TAIL_HASH CONDITIONS)... )
|
|
8
|
-
P2_SINGLETON_VIA_DELEGATED_PUZZLE_PUZHASH
|
|
9
|
-
p2_singleton_parent_amount_list ; for xch this is just a list of (coin_parent coin_amount)
|
|
10
|
-
p2_singleton_tailhash_parent_amount_list ; list of ((asset (parent amount) (parent amount)... ) (asset (parent amount)... )... ),
|
|
11
|
-
; must match order of curryed asset list
|
|
12
|
-
; the last (parent amount) gets given the puzzlehash, the rest get given 0
|
|
13
|
-
treasury_inner_puzhash
|
|
14
|
-
)
|
|
15
|
-
; we need to track CAT_TYPE and DELEGATED_PUZZLE
|
|
16
|
-
; list of (asset_type (parent amount))
|
|
17
|
-
|
|
18
|
-
; If you're writing a proposal you'll want to use this layer
|
|
19
|
-
; if you don't, your proposal might be invalidated if the p2_singleton coins get spent
|
|
20
|
-
|
|
21
|
-
(include condition_codes.clib)
|
|
22
|
-
(include curry-and-treehash.clib)
|
|
23
|
-
(include utility_macros.clib)
|
|
24
|
-
(include *standard-cl-21*)
|
|
25
|
-
|
|
26
|
-
(defun-inline calculate_singleton_puzzle_hash (PROPOSAL_SINGLETON_STRUCT inner_puzzle_hash)
|
|
27
|
-
(puzzle-hash-of-curried-function (f PROPOSAL_SINGLETON_STRUCT)
|
|
28
|
-
inner_puzzle_hash
|
|
29
|
-
(sha256tree PROPOSAL_SINGLETON_STRUCT)
|
|
30
|
-
)
|
|
31
|
-
)
|
|
32
|
-
|
|
33
|
-
(defun loop_through_list (
|
|
34
|
-
TREASURY_SINGLETON_STRUCT
|
|
35
|
-
SPEND_AMOUNT
|
|
36
|
-
P2_SINGLETON_PUZHASH
|
|
37
|
-
p2_calculated
|
|
38
|
-
p2_singleton_list
|
|
39
|
-
total
|
|
40
|
-
output
|
|
41
|
-
)
|
|
42
|
-
(c
|
|
43
|
-
(list CREATE_PUZZLE_ANNOUNCEMENT (sha256tree (list p2_calculated (sha256tree 0))))
|
|
44
|
-
(c
|
|
45
|
-
(list ASSERT_COIN_ANNOUNCEMENT (sha256 p2_calculated '$'))
|
|
46
|
-
(if p2_singleton_list
|
|
47
|
-
(loop_through_list
|
|
48
|
-
TREASURY_SINGLETON_STRUCT
|
|
49
|
-
SPEND_AMOUNT
|
|
50
|
-
P2_SINGLETON_PUZHASH
|
|
51
|
-
(calculate_coin_id (f (f p2_singleton_list)) P2_SINGLETON_PUZHASH (f (r (f p2_singleton_list))))
|
|
52
|
-
(r p2_singleton_list)
|
|
53
|
-
(+ total (f (r (f p2_singleton_list))))
|
|
54
|
-
output
|
|
55
|
-
)
|
|
56
|
-
(if (> (- total SPEND_AMOUNT) 0)
|
|
57
|
-
(c
|
|
58
|
-
(list CREATE_COIN P2_SINGLETON_PUZHASH (- total SPEND_AMOUNT) (list P2_SINGLETON_PUZHASH))
|
|
59
|
-
output
|
|
60
|
-
)
|
|
61
|
-
output
|
|
62
|
-
)
|
|
63
|
-
)
|
|
64
|
-
)
|
|
65
|
-
)
|
|
66
|
-
)
|
|
67
|
-
|
|
68
|
-
(defun add_announcements_to_result (p2_calculated delegated_puzhash output)
|
|
69
|
-
(c
|
|
70
|
-
(list CREATE_PUZZLE_ANNOUNCEMENT (sha256tree (list p2_calculated delegated_puzhash)))
|
|
71
|
-
(c
|
|
72
|
-
(list ASSERT_COIN_ANNOUNCEMENT (sha256 p2_calculated '$'))
|
|
73
|
-
output
|
|
74
|
-
)
|
|
75
|
-
)
|
|
76
|
-
)
|
|
77
|
-
|
|
78
|
-
(defun sum_create_coins (conditions)
|
|
79
|
-
(if conditions
|
|
80
|
-
(+
|
|
81
|
-
(if
|
|
82
|
-
(= (f (f conditions)) CREATE_COIN)
|
|
83
|
-
(if
|
|
84
|
-
(> (f (r (r (f conditions)))) 0) ; make an exception for -113 and other magic conditions
|
|
85
|
-
(f (r (r (f conditions))))
|
|
86
|
-
0
|
|
87
|
-
)
|
|
88
|
-
0
|
|
89
|
-
)
|
|
90
|
-
(sum_create_coins (r conditions))
|
|
91
|
-
)
|
|
92
|
-
0
|
|
93
|
-
)
|
|
94
|
-
)
|
|
95
|
-
|
|
96
|
-
(defun-inline calculate_delegated_puzzlehash (CONDITIONS)
|
|
97
|
-
(sha256tree (c ONE CONDITIONS)) ; this makes (q . CONDITIONS)
|
|
98
|
-
)
|
|
99
|
-
|
|
100
|
-
(defun wrap_in_cat_layer (CAT_MOD_HASH CAT_TAIL_HASH INNERPUZHASH)
|
|
101
|
-
(puzzle-hash-of-curried-function CAT_MOD_HASH
|
|
102
|
-
INNERPUZHASH
|
|
103
|
-
(sha256 ONE CAT_TAIL_HASH)
|
|
104
|
-
(sha256 ONE CAT_MOD_HASH)
|
|
105
|
-
)
|
|
106
|
-
)
|
|
107
|
-
|
|
108
|
-
(defun dedupe ((@ lst ((@ first (parent amount)) . rest)) ids)
|
|
109
|
-
(if lst
|
|
110
|
-
(let ((id (sha256 parent amount)))
|
|
111
|
-
(if (in id ids)
|
|
112
|
-
(dedupe rest ids)
|
|
113
|
-
(c first (dedupe rest (c id ids)))
|
|
114
|
-
)
|
|
115
|
-
)
|
|
116
|
-
()
|
|
117
|
-
)
|
|
118
|
-
)
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
; for a given asset type, loop through the cat coins and generate the announcements required for each
|
|
122
|
-
(defun for_each_asset (
|
|
123
|
-
TREASURY_SINGLETON_STRUCT
|
|
124
|
-
CAT_MOD_HASH
|
|
125
|
-
CONDITIONS_FOR_THIS_ASSET_TYPE
|
|
126
|
-
P2_SINGLETON_PUZHASH
|
|
127
|
-
p2_singleton_puzzle_hash
|
|
128
|
-
parent_amount_list
|
|
129
|
-
total
|
|
130
|
-
create_coin_sum
|
|
131
|
-
output
|
|
132
|
-
)
|
|
133
|
-
(if parent_amount_list
|
|
134
|
-
(add_announcements_to_result
|
|
135
|
-
(calculate_coin_id (f (f parent_amount_list)) p2_singleton_puzzle_hash (f (r (f parent_amount_list))))
|
|
136
|
-
(if
|
|
137
|
-
(r parent_amount_list) ; this is the delegated_puzhash
|
|
138
|
-
(sha256tree 0) ; most coins destroy themselves
|
|
139
|
-
(calculate_delegated_puzzlehash ; the last coin creates the conditions
|
|
140
|
-
(let ((coin_sum (- (+ total (f (r (f parent_amount_list)))) create_coin_sum)))
|
|
141
|
-
(if (> coin_sum 0)
|
|
142
|
-
(c
|
|
143
|
-
(list CREATE_COIN P2_SINGLETON_PUZHASH coin_sum (list P2_SINGLETON_PUZHASH))
|
|
144
|
-
CONDITIONS_FOR_THIS_ASSET_TYPE
|
|
145
|
-
)
|
|
146
|
-
CONDITIONS_FOR_THIS_ASSET_TYPE
|
|
147
|
-
))
|
|
148
|
-
)
|
|
149
|
-
)
|
|
150
|
-
(for_each_asset
|
|
151
|
-
TREASURY_SINGLETON_STRUCT
|
|
152
|
-
CAT_MOD_HASH
|
|
153
|
-
CONDITIONS_FOR_THIS_ASSET_TYPE
|
|
154
|
-
P2_SINGLETON_PUZHASH
|
|
155
|
-
p2_singleton_puzzle_hash
|
|
156
|
-
(r parent_amount_list)
|
|
157
|
-
(+ total (f (r (f parent_amount_list))))
|
|
158
|
-
create_coin_sum
|
|
159
|
-
output
|
|
160
|
-
)
|
|
161
|
-
)
|
|
162
|
-
output
|
|
163
|
-
)
|
|
164
|
-
)
|
|
165
|
-
|
|
166
|
-
; loops through the list of ((tailhash conditions))
|
|
167
|
-
(defun for_each_asset_type (
|
|
168
|
-
TREASURY_SINGLETON_STRUCT
|
|
169
|
-
CAT_MOD_HASH
|
|
170
|
-
P2_SINGLETON_PUZHASH
|
|
171
|
-
LIST_OF_TAILHASH_CONDITIONS
|
|
172
|
-
p2_singleton_tailhash_parent_amount_list ; ((tailhash ((parent amount) (parent_amount)... ) (tailhash (parent amount))..)
|
|
173
|
-
output
|
|
174
|
-
)
|
|
175
|
-
(if LIST_OF_TAILHASH_CONDITIONS
|
|
176
|
-
(for_each_asset_type
|
|
177
|
-
TREASURY_SINGLETON_STRUCT
|
|
178
|
-
CAT_MOD_HASH
|
|
179
|
-
P2_SINGLETON_PUZHASH
|
|
180
|
-
(r LIST_OF_TAILHASH_CONDITIONS)
|
|
181
|
-
(r p2_singleton_tailhash_parent_amount_list)
|
|
182
|
-
(for_each_asset
|
|
183
|
-
TREASURY_SINGLETON_STRUCT
|
|
184
|
-
CAT_MOD_HASH
|
|
185
|
-
(if
|
|
186
|
-
(=
|
|
187
|
-
(f (f LIST_OF_TAILHASH_CONDITIONS))
|
|
188
|
-
(f (f p2_singleton_tailhash_parent_amount_list))
|
|
189
|
-
)
|
|
190
|
-
(f (r (f LIST_OF_TAILHASH_CONDITIONS)))
|
|
191
|
-
(x) ; bad solution format
|
|
192
|
-
)
|
|
193
|
-
P2_SINGLETON_PUZHASH
|
|
194
|
-
(wrap_in_cat_layer CAT_MOD_HASH (f (f p2_singleton_tailhash_parent_amount_list)) P2_SINGLETON_PUZHASH) ; p2_singleton_puzzle_hash
|
|
195
|
-
(dedupe (f (r (f p2_singleton_tailhash_parent_amount_list))) 0 0) ; list of ((parent amount) (parent amount)...)
|
|
196
|
-
0 ; current total - initialise as 0
|
|
197
|
-
(sum_create_coins (f (r (f LIST_OF_TAILHASH_CONDITIONS))))
|
|
198
|
-
output ; add new conditions to previous calculated output conditions
|
|
199
|
-
)
|
|
200
|
-
)
|
|
201
|
-
output ; at the end of the loop output our calculated conditions
|
|
202
|
-
)
|
|
203
|
-
)
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
; main
|
|
207
|
-
(c
|
|
208
|
-
(list ASSERT_MY_PUZZLEHASH (calculate_singleton_puzzle_hash TREASURY_SINGLETON_STRUCT treasury_inner_puzhash))
|
|
209
|
-
(c
|
|
210
|
-
(list CREATE_COIN treasury_inner_puzhash ONE (list (f (r TREASURY_SINGLETON_STRUCT))))
|
|
211
|
-
(if CONDITIONS
|
|
212
|
-
(loop_through_list
|
|
213
|
-
TREASURY_SINGLETON_STRUCT
|
|
214
|
-
(sum_create_coins CONDITIONS)
|
|
215
|
-
P2_SINGLETON_VIA_DELEGATED_PUZZLE_PUZHASH
|
|
216
|
-
(if p2_singleton_parent_amount_list (calculate_coin_id (f (f p2_singleton_parent_amount_list)) P2_SINGLETON_VIA_DELEGATED_PUZZLE_PUZHASH (f (r (f p2_singleton_parent_amount_list)))) ())
|
|
217
|
-
(if p2_singleton_parent_amount_list (r p2_singleton_parent_amount_list) ())
|
|
218
|
-
(if p2_singleton_parent_amount_list (f (r (f p2_singleton_parent_amount_list))) ())
|
|
219
|
-
(for_each_asset_type
|
|
220
|
-
TREASURY_SINGLETON_STRUCT
|
|
221
|
-
CAT_MOD_HASH
|
|
222
|
-
P2_SINGLETON_VIA_DELEGATED_PUZZLE_PUZHASH
|
|
223
|
-
LIST_OF_TAILHASH_CONDITIONS
|
|
224
|
-
p2_singleton_tailhash_parent_amount_list ; ((tailhash ((parent amount) (parent_amount)... ) (tailhash (parent amount))..)
|
|
225
|
-
CONDITIONS
|
|
226
|
-
)
|
|
227
|
-
)
|
|
228
|
-
(for_each_asset_type
|
|
229
|
-
TREASURY_SINGLETON_STRUCT
|
|
230
|
-
CAT_MOD_HASH
|
|
231
|
-
P2_SINGLETON_VIA_DELEGATED_PUZZLE_PUZHASH
|
|
232
|
-
LIST_OF_TAILHASH_CONDITIONS
|
|
233
|
-
p2_singleton_tailhash_parent_amount_list ; ((tailhash ((parent amount) (parent_amount)... ) (tailhash (parent amount))..)
|
|
234
|
-
CONDITIONS
|
|
235
|
-
)
|
|
236
|
-
)
|
|
237
|
-
)
|
|
238
|
-
)
|
|
239
|
-
|
|
240
|
-
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ff02ffff01ff04ffff04ffff0148ffff04ffff02ff28ffff04ff02ffff04ffff05ff0580ffff04ff8202ffffff04ffff02ff14ffff04ff02ffff04ff05ff80808080ff808080808080ffff01808080ffff04ffff04ffff0133ffff04ff8202ffffff04ffff0101ffff04ffff04ffff05ffff06ff058080ffff018080ffff018080808080ffff02ffff03ff17ffff01ff02ffff01ff02ff3cffff04ff02ffff04ff05ffff04ffff02ff2affff04ff02ffff04ff17ff80808080ffff04ff5fffff04ffff02ffff03ff8200bfffff01ff02ffff01ff02ff38ffff04ff02ffff04ffff05ffff05ff8200bf8080ffff04ff5fffff04ffff05ffff06ffff05ff8200bf808080ff808080808080ff0180ffff01ff02ffff01ff0180ff018080ff0180ffff04ffff02ffff03ff8200bfffff01ff02ffff01ff06ff8200bf80ff0180ffff01ff02ffff01ff0180ff018080ff0180ffff04ffff02ffff03ff8200bfffff01ff02ffff01ff05ffff06ffff05ff8200bf808080ff0180ffff01ff02ffff01ff0180ff018080ff0180ffff04ffff02ff3effff04ff02ffff04ff05ffff04ff0bffff04ff5fffff04ff2fffff04ff82017fffff04ff17ff808080808080808080ff80808080808080808080ff0180ffff01ff02ffff01ff02ff3effff04ff02ffff04ff05ffff04ff0bffff04ff5fffff04ff2fffff04ff82017fffff04ff17ff808080808080808080ff018080ff01808080ffff04ffff01ffffffff02ffff03ff05ffff01ff02ffff01ff02ff10ffff04ff02ffff04ffff06ff0580ffff04ffff0bffff0102ffff0bffff0101ffff010480ffff0bffff0102ffff0bffff0102ffff0bffff0101ffff010180ffff05ff058080ffff0bffff0102ff0bffff0bffff0101ffff018080808080ff8080808080ff0180ffff01ff02ffff010bff018080ff0180ffff0bffff0102ffff01a0a12871fee210fb8619291eaea194581cbd2531e4b23759d225f6806923f63222ffff0bffff0102ffff0bffff0102ffff01a09dcf97a184f32623d11a73124ceb99a5709b083721e878a16d78f596718ba7b2ff0580ffff0bffff0102ffff02ff10ffff04ff02ffff04ff07ffff01ffa09dcf97a184f32623d11a73124ceb99a5709b083721e878a16d78f596718ba7b280808080ffff01a04bf5122f344554c53bde2ebb8cd2b7e3d1600ad631c385a5d7cce23c7785459a808080ff02ffff03ffff22ffff09ffff0dff0580ffff012080ffff09ffff0dff0b80ffff012080ffff15ff17ffff0181ff8080ffff01ff02ffff01ff0bff05ff0bff1780ff0180ffff01ff02ffff01ff0880ff018080ff0180ffff02ffff03ffff07ff0580ffff01ff02ffff01ff0bffff0102ffff02ff14ffff04ff02ffff04ffff05ff0580ff80808080ffff02ff14ffff04ff02ffff04ffff06ff0580ff8080808080ff0180ffff01ff02ffff01ff0bffff0101ff0580ff018080ff0180ffff02ffff03ff0bffff01ff02ffff01ff03ffff09ff05ffff05ff0b8080ffff0101ffff02ff2cffff04ff02ffff04ff05ffff04ffff06ff0b80ff808080808080ff0180ffff01ff02ffff01ff0180ff018080ff0180ff04ffff04ffff013effff04ffff02ff14ffff04ff02ffff04ffff04ff2fffff04ffff02ff14ffff04ff02ffff01ff80808080ff808080ff80808080ff808080ffff04ffff04ffff013dffff04ffff0bff2fffff012480ff808080ffff02ffff03ff5fffff01ff02ffff01ff02ff3cffff04ff02ffff04ff05ffff04ff0bffff04ff17ffff04ffff02ff38ffff04ff02ffff04ffff05ffff05ff5f8080ffff04ff17ffff04ffff05ffff06ffff05ff5f808080ff808080808080ffff04ffff06ff5f80ffff04ffff10ff8200bfffff05ffff06ffff05ff5f80808080ffff04ff82017fff80808080808080808080ff0180ffff01ff02ffff01ff02ffff03ffff15ffff11ff8200bfff0b80ffff018080ffff01ff02ffff01ff04ffff04ffff0133ffff04ff17ffff04ffff11ff8200bfff0b80ffff04ffff04ff17ffff018080ffff018080808080ff82017f80ff0180ffff01ff02ffff0182017fff018080ff0180ff018080ff01808080ffffff04ffff04ffff013effff04ffff02ff14ffff04ff02ffff04ffff04ff05ffff04ff0bff808080ff80808080ff808080ffff04ffff04ffff013dffff04ffff0bff05ffff012480ff808080ff178080ffff02ffff03ff05ffff01ff02ffff01ff10ffff02ffff03ffff09ffff05ffff05ff058080ffff013380ffff01ff02ffff01ff02ffff03ffff15ffff05ffff06ffff06ffff05ff0580808080ffff018080ffff01ff02ffff01ff05ffff06ffff06ffff05ff0580808080ff0180ffff01ff02ffff01ff0180ff018080ff0180ff0180ffff01ff02ffff01ff0180ff018080ff0180ffff02ff2affff04ff02ffff04ffff06ff0580ff8080808080ff0180ffff01ff02ffff01ff0180ff018080ff0180ff02ff28ffff04ff02ffff04ff05ffff04ff17ffff04ffff0bffff0101ff0b80ffff04ffff0bffff0101ff0580ff80808080808080ffff02ffff03ff05ffff01ff02ffff01ff02ffff03ffff02ff2cffff04ff02ffff04ffff0bff11ff2980ffff04ffff05ffff06ffff06ff01808080ff8080808080ffff01ff02ffff01ff02ff16ffff04ff02ffff04ffff06ffff05ffff06ff01808080ffff04ffff05ffff06ffff06ff01808080ff8080808080ff0180ffff01ff02ffff01ff04ffff05ffff05ffff06ff01808080ffff02ff16ffff04ff02ffff04ffff06ffff05ffff06ff01808080ffff04ffff04ffff0bff11ff2980ffff05ffff06ffff06ff0180808080ff808080808080ff018080ff0180ff0180ffff01ff02ffff01ff0180ff018080ff0180ffff02ffff03ff8200bfffff01ff02ffff01ff02ff12ffff04ff02ffff04ffff02ff38ffff04ff02ffff04ffff05ffff05ff8200bf8080ffff04ff5fffff04ffff05ffff06ffff05ff8200bf808080ff808080808080ffff04ffff02ffff03ffff06ff8200bf80ffff01ff02ffff01ff02ff14ffff04ff02ffff04ffff0180ff80808080ff0180ffff01ff02ffff01ff02ff14ffff04ff02ffff04ffff04ffff0101ffff02ffff03ffff15ffff11ffff10ff82017fffff05ffff06ffff05ff8200bf80808080ff8202ff80ffff018080ffff01ff02ffff01ff04ffff04ffff0133ffff04ffff05ffff06ffff06ffff06ffff06ff018080808080ffff04ffff11ffff10ff82017fffff05ffff06ffff05ff8200bf80808080ff8202ff80ffff04ffff04ffff05ffff06ffff06ffff06ffff06ff018080808080ffff018080ffff018080808080ffff05ffff06ffff06ffff06ff018080808080ff0180ffff01ff02ffff01ff05ffff06ffff06ffff06ff0180808080ff018080ff018080ff80808080ff018080ff0180ffff04ffff02ff2effff04ff02ffff04ff05ffff04ff0bffff04ff17ffff04ff2fffff04ff5fffff04ffff06ff8200bf80ffff04ffff10ff82017fffff05ffff06ffff05ff8200bf80808080ffff04ff8202ffffff04ff8205ffff808080808080808080808080ff808080808080ff0180ffff01ff02ffff018205ffff018080ff0180ff02ffff03ff2fffff01ff02ffff01ff02ff3effff04ff02ffff04ff05ffff04ff0bffff04ff17ffff04ffff06ff2f80ffff04ffff06ff5f80ffff04ffff02ff2effff04ff02ffff04ff05ffff04ff0bffff04ffff02ffff03ffff09ffff05ffff05ff2f8080ffff05ffff05ff5f808080ffff01ff02ffff01ff05ffff06ffff05ff2f808080ff0180ffff01ff02ffff01ff0880ff018080ff0180ffff04ff17ffff04ffff02ff3affff04ff02ffff04ff0bffff04ffff05ffff05ff5f8080ffff04ff17ff808080808080ffff04ffff02ff16ffff04ff02ffff04ffff05ffff06ffff05ff5f808080ffff04ffff0180ffff04ffff0180ff808080808080ffff04ffff0180ffff04ffff02ff2affff04ff02ffff04ffff05ffff06ffff05ff2f808080ff80808080ffff04ff8200bfff808080808080808080808080ff808080808080808080ff0180ffff01ff02ffff018200bfff018080ff0180ff018080
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
fb3890f672c9df3cc69699e21446b89b55b65071d35bf5c80a49d11c9b79a68f
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
(mod
|
|
2
|
-
(
|
|
3
|
-
TREASURY_MOD_HASH
|
|
4
|
-
PROPOSAL_VALIDATOR ; this is the curryed proposal validator
|
|
5
|
-
PROPOSAL_LENGTH
|
|
6
|
-
PROPOSAL_SOFTCLOSE_LENGTH
|
|
7
|
-
ATTENDANCE_REQUIRED
|
|
8
|
-
PASS_MARGIN ; this is a percentage 0 - 10,000 - 51% would be 5100
|
|
9
|
-
PROPOSAL_SELF_DESTRUCT_TIME ; time in seconds after which proposals can be automatically closed
|
|
10
|
-
ORACLE_SPEND_DELAY ; timelock delay for oracle spend
|
|
11
|
-
(@ proposal_announcement (announcement_source delegated_puzzle_hash announcement_args))
|
|
12
|
-
proposal_validator_solution
|
|
13
|
-
delegated_puzzle_reveal ; this is the reveal of the puzzle announced by the proposal
|
|
14
|
-
delegated_solution ; this is not secure unless the delegated puzzle secures it
|
|
15
|
-
my_singleton_struct
|
|
16
|
-
)
|
|
17
|
-
(include utility_macros.clib)
|
|
18
|
-
(include condition_codes.clib)
|
|
19
|
-
(include curry-and-treehash.clib)
|
|
20
|
-
(include *standard-cl-21*)
|
|
21
|
-
|
|
22
|
-
(defun-inline recreate_self (
|
|
23
|
-
TREASURY_MOD_HASH
|
|
24
|
-
PROPOSAL_VALIDATOR
|
|
25
|
-
PROPOSAL_LENGTH
|
|
26
|
-
PROPOSAL_SOFTCLOSE_LENGTH
|
|
27
|
-
ATTENDANCE_REQUIRED
|
|
28
|
-
PASS_MARGIN
|
|
29
|
-
PROPOSAL_SELF_DESTRUCT_TIME
|
|
30
|
-
ORACLE_SPEND_DELAY
|
|
31
|
-
)
|
|
32
|
-
(puzzle-hash-of-curried-function TREASURY_MOD_HASH
|
|
33
|
-
(sha256 ONE ORACLE_SPEND_DELAY)
|
|
34
|
-
(sha256 ONE PROPOSAL_SELF_DESTRUCT_TIME)
|
|
35
|
-
(sha256 ONE PASS_MARGIN)
|
|
36
|
-
(sha256 ONE ATTENDANCE_REQUIRED)
|
|
37
|
-
(sha256 ONE PROPOSAL_SOFTCLOSE_LENGTH)
|
|
38
|
-
(sha256 ONE PROPOSAL_LENGTH)
|
|
39
|
-
(sha256tree PROPOSAL_VALIDATOR)
|
|
40
|
-
(sha256 ONE TREASURY_MOD_HASH)
|
|
41
|
-
)
|
|
42
|
-
)
|
|
43
|
-
|
|
44
|
-
(defun calculate_singleton_puzzle_hash (SINGLETON_STRUCT inner_puzzle_hash)
|
|
45
|
-
(puzzle-hash-of-curried-function (f SINGLETON_STRUCT)
|
|
46
|
-
inner_puzzle_hash
|
|
47
|
-
(sha256tree SINGLETON_STRUCT)
|
|
48
|
-
)
|
|
49
|
-
)
|
|
50
|
-
|
|
51
|
-
(defun stager (ORACLE_SPEND_DELAY my_inner_puzhash singleton_struct)
|
|
52
|
-
(c
|
|
53
|
-
(if singleton_struct
|
|
54
|
-
(list ASSERT_MY_COIN_ID
|
|
55
|
-
(calculate_coin_id
|
|
56
|
-
(f (r singleton_struct))
|
|
57
|
-
(calculate_singleton_puzzle_hash singleton_struct my_inner_puzhash)
|
|
58
|
-
ONE
|
|
59
|
-
)
|
|
60
|
-
;; TODO: When the new condition codes are available, use ASSERT_EPHEMERAL to ensure this
|
|
61
|
-
;; spend path is only used in the eve spend.
|
|
62
|
-
;; (list ASSERT_EPHEMERAL)
|
|
63
|
-
)
|
|
64
|
-
(list ASSERT_HEIGHT_RELATIVE ORACLE_SPEND_DELAY)
|
|
65
|
-
)
|
|
66
|
-
(list (list CREATE_COIN my_inner_puzhash ONE))
|
|
67
|
-
)
|
|
68
|
-
)
|
|
69
|
-
|
|
70
|
-
(c
|
|
71
|
-
(list CREATE_PUZZLE_ANNOUNCEMENT 0) ; the arguments are secured implicitly in the puzzle of the treasury
|
|
72
|
-
(if delegated_puzzle_reveal
|
|
73
|
-
; if we're checking a proposal (testing if it has passed)
|
|
74
|
-
(if (= (sha256tree delegated_puzzle_reveal) delegated_puzzle_hash)
|
|
75
|
-
; Merge the treasury conditions with the proposal validator conditions
|
|
76
|
-
; If the update case then the validator returns the new treasury create coin
|
|
77
|
-
; If the spend case then we need to recreate the treasury outselves
|
|
78
|
-
; treasury specific conditions
|
|
79
|
-
|
|
80
|
-
(c
|
|
81
|
-
(list ASSERT_COIN_ANNOUNCEMENT (sha256 announcement_source (sha256tree (list delegated_puzzle_hash announcement_args)))) ; announcement source is validated inside the ProposalValidator
|
|
82
|
-
(c
|
|
83
|
-
(list ASSERT_HEIGHT_RELATIVE 1)
|
|
84
|
-
(a
|
|
85
|
-
PROPOSAL_VALIDATOR
|
|
86
|
-
(list
|
|
87
|
-
ATTENDANCE_REQUIRED
|
|
88
|
-
PASS_MARGIN
|
|
89
|
-
proposal_announcement
|
|
90
|
-
proposal_validator_solution
|
|
91
|
-
(a delegated_puzzle_reveal delegated_solution)
|
|
92
|
-
)
|
|
93
|
-
)
|
|
94
|
-
)
|
|
95
|
-
)
|
|
96
|
-
(x)
|
|
97
|
-
)
|
|
98
|
-
; no proposal_flag so create the oracle announcement
|
|
99
|
-
(stager
|
|
100
|
-
ORACLE_SPEND_DELAY
|
|
101
|
-
(recreate_self
|
|
102
|
-
TREASURY_MOD_HASH
|
|
103
|
-
PROPOSAL_VALIDATOR
|
|
104
|
-
PROPOSAL_LENGTH
|
|
105
|
-
PROPOSAL_SOFTCLOSE_LENGTH
|
|
106
|
-
ATTENDANCE_REQUIRED
|
|
107
|
-
PASS_MARGIN
|
|
108
|
-
PROPOSAL_SELF_DESTRUCT_TIME
|
|
109
|
-
ORACLE_SPEND_DELAY
|
|
110
|
-
)
|
|
111
|
-
my_singleton_struct
|
|
112
|
-
)
|
|
113
|
-
)
|
|
114
|
-
)
|
|
115
|
-
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ff02ffff01ff04ffff04ffff013effff04ffff0180ffff01808080ffff02ffff03ff8217ffffff01ff02ffff01ff02ffff03ffff09ffff02ff0affff04ff02ffff04ff8217ffff80808080ff8215ff80ffff01ff02ffff01ff04ffff04ffff013dffff04ffff0bff8209ffffff02ff0affff04ff02ffff04ffff04ff8215ffffff04ff822dffffff01808080ff8080808080ffff01808080ffff04ffff04ffff0152ffff04ffff0101ffff01808080ffff02ff0bffff04ff5fffff04ff8200bfffff04ff8205ffffff04ff820bffffff04ffff02ff8217ffff822fff80ffff01808080808080808080ff0180ffff01ff02ffff01ff0880ff018080ff0180ff0180ffff01ff02ffff01ff02ff1effff04ff02ffff04ff8202ffffff04ffff02ff14ffff04ff02ffff04ff05ffff04ffff0bffff0101ff8202ff80ffff04ffff0bffff0101ff82017f80ffff04ffff0bffff0101ff8200bf80ffff04ffff0bffff0101ff5f80ffff04ffff0bffff0101ff2f80ffff04ffff0bffff0101ff1780ffff04ffff02ff0affff04ff02ffff04ff0bff80808080ffff04ffff0bffff0101ff0580ff808080808080808080808080ffff04ff825fffff808080808080ff018080ff018080ffff04ffff01ffffff02ffff03ff05ffff01ff02ffff01ff02ff08ffff04ff02ffff04ffff06ff0580ffff04ffff0bffff0102ffff0bffff0101ffff010480ffff0bffff0102ffff0bffff0102ffff0bffff0101ffff010180ffff05ff058080ffff0bffff0102ff0bffff0bffff0101ffff018080808080ff8080808080ff0180ffff01ff02ffff010bff018080ff0180ffff0bffff0102ffff01a0a12871fee210fb8619291eaea194581cbd2531e4b23759d225f6806923f63222ffff0bffff0102ffff0bffff0102ffff01a09dcf97a184f32623d11a73124ceb99a5709b083721e878a16d78f596718ba7b2ff0580ffff0bffff0102ffff02ff08ffff04ff02ffff04ff07ffff01ffa09dcf97a184f32623d11a73124ceb99a5709b083721e878a16d78f596718ba7b280808080ffff01a04bf5122f344554c53bde2ebb8cd2b7e3d1600ad631c385a5d7cce23c7785459a808080ff02ffff03ffff22ffff09ffff0dff0580ffff012080ffff09ffff0dff0b80ffff012080ffff15ff17ffff0181ff8080ffff01ff02ffff01ff0bff05ff0bff1780ff0180ffff01ff02ffff01ff0880ff018080ff0180ffff02ffff03ffff07ff0580ffff01ff02ffff01ff0bffff0102ffff02ff0affff04ff02ffff04ffff05ff0580ff80808080ffff02ff0affff04ff02ffff04ffff06ff0580ff8080808080ff0180ffff01ff02ffff01ff0bffff0101ff0580ff018080ff0180ffff02ff14ffff04ff02ffff04ff09ffff04ff0bffff04ffff02ff0affff04ff02ffff04ff05ff80808080ff808080808080ff04ffff02ffff03ff17ffff01ff02ffff01ff04ffff0146ffff04ffff02ff1cffff04ff02ffff04ffff05ffff06ff178080ffff04ffff02ff16ffff04ff02ffff04ff17ffff04ff0bff8080808080ffff04ffff0101ff808080808080ffff01808080ff0180ffff01ff02ffff01ff04ffff0152ffff04ff05ffff01808080ff018080ff0180ffff04ffff04ffff0133ffff04ff0bffff01ff01808080ff808080ff018080
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
(mod
|
|
2
|
-
(
|
|
3
|
-
TREASURY_MOD_HASH
|
|
4
|
-
VALIDATOR_MOD_HASH
|
|
5
|
-
SINGLETON_STRUCT ; (SINGLETON_MOD_HASH (SINGLETON_ID . LAUNCHER_PUZZLE_HASH))
|
|
6
|
-
PROPOSAL_SELF_HASH
|
|
7
|
-
PROPOSAL_MINIMUM_AMOUNT
|
|
8
|
-
PROPOSAL_EXCESS_PAYOUT_PUZHASH
|
|
9
|
-
PROPOSAL_LENGTH
|
|
10
|
-
PROPOSAL_SOFTCLOSE_LENGTH
|
|
11
|
-
ATTENDANCE_REQUIRED
|
|
12
|
-
PASS_MARGIN
|
|
13
|
-
PROPOSAL_SELF_DESTRUCT_TIME
|
|
14
|
-
ORACLE_SPEND_DELAY
|
|
15
|
-
)
|
|
16
|
-
;; This is a proposal to update treasury conditions for a DAO
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
(include condition_codes.clib)
|
|
20
|
-
(include curry-and-treehash.clib)
|
|
21
|
-
(include *standard-cl-21*)
|
|
22
|
-
(include utility_macros.clib)
|
|
23
|
-
|
|
24
|
-
(list
|
|
25
|
-
(list CREATE_COIN
|
|
26
|
-
(puzzle-hash-of-curried-function TREASURY_MOD_HASH
|
|
27
|
-
(sha256 ONE ORACLE_SPEND_DELAY)
|
|
28
|
-
(sha256 ONE PROPOSAL_SELF_DESTRUCT_TIME)
|
|
29
|
-
(sha256 ONE PASS_MARGIN)
|
|
30
|
-
(sha256 ONE ATTENDANCE_REQUIRED)
|
|
31
|
-
(sha256 ONE PROPOSAL_SOFTCLOSE_LENGTH)
|
|
32
|
-
(sha256 ONE PROPOSAL_LENGTH)
|
|
33
|
-
(puzzle-hash-of-curried-function VALIDATOR_MOD_HASH
|
|
34
|
-
(sha256 ONE PROPOSAL_EXCESS_PAYOUT_PUZHASH)
|
|
35
|
-
(sha256 ONE PROPOSAL_MINIMUM_AMOUNT)
|
|
36
|
-
(sha256 ONE PROPOSAL_SELF_HASH)
|
|
37
|
-
(sha256tree SINGLETON_STRUCT)
|
|
38
|
-
)
|
|
39
|
-
(sha256 ONE TREASURY_MOD_HASH)
|
|
40
|
-
)
|
|
41
|
-
ONE
|
|
42
|
-
)
|
|
43
|
-
)
|
|
44
|
-
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ff02ffff01ff04ffff04ffff0133ffff04ffff02ff0affff04ff02ffff04ff05ffff04ffff0bffff0101ff822fff80ffff04ffff0bffff0101ff8217ff80ffff04ffff0bffff0101ff820bff80ffff04ffff0bffff0101ff8205ff80ffff04ffff0bffff0101ff8202ff80ffff04ffff0bffff0101ff82017f80ffff04ffff02ff0affff04ff02ffff04ff0bffff04ffff0bffff0101ff8200bf80ffff04ffff0bffff0101ff5f80ffff04ffff0bffff0101ff2f80ffff04ffff02ff0effff04ff02ffff04ff17ff80808080ff8080808080808080ffff04ffff0bffff0101ff0580ff808080808080808080808080ffff04ffff0101ffff0180808080ffff018080ffff04ffff01ffff02ffff03ff05ffff01ff02ffff01ff02ff04ffff04ff02ffff04ffff06ff0580ffff04ffff0bffff0102ffff0bffff0101ffff010480ffff0bffff0102ffff0bffff0102ffff0bffff0101ffff010180ffff05ff058080ffff0bffff0102ff0bffff0bffff0101ffff018080808080ff8080808080ff0180ffff01ff02ffff010bff018080ff0180ffff0bffff0102ffff01a0a12871fee210fb8619291eaea194581cbd2531e4b23759d225f6806923f63222ffff0bffff0102ffff0bffff0102ffff01a09dcf97a184f32623d11a73124ceb99a5709b083721e878a16d78f596718ba7b2ff0580ffff0bffff0102ffff02ff04ffff04ff02ffff04ff07ffff01ffa09dcf97a184f32623d11a73124ceb99a5709b083721e878a16d78f596718ba7b280808080ffff01a04bf5122f344554c53bde2ebb8cd2b7e3d1600ad631c385a5d7cce23c7785459a808080ff02ffff03ffff07ff0580ffff01ff02ffff01ff0bffff0102ffff02ff0effff04ff02ffff04ffff05ff0580ff80808080ffff02ff0effff04ff02ffff04ffff06ff0580ff8080808080ff0180ffff01ff02ffff01ff0bffff0101ff0580ff018080ff0180ff018080
|
chia/wallet/puzzles/json.clib
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
(
|
|
2
|
-
|
|
3
|
-
(defun search_list_then_resume (key json_object result)
|
|
4
|
-
(if result
|
|
5
|
-
result
|
|
6
|
-
(search_for_value_given_key key (r json_object))
|
|
7
|
-
)
|
|
8
|
-
)
|
|
9
|
-
|
|
10
|
-
(defun search_for_value_given_key (key json_object)
|
|
11
|
-
(if json_object
|
|
12
|
-
(if (l (f from_json_dict)) ; if we are hitting an unlabelled item (atom), just move on
|
|
13
|
-
(if (= (f (f json_object)) key) ; if we have found our key
|
|
14
|
-
(r (f json_object)) ; return the value
|
|
15
|
-
(if (l (r (f json_object))) ; otherwise check if we have hit another dictionary
|
|
16
|
-
(search_list_then_resume key json_object (search_for_value_given_key key (r (f json_object)))) ; check new dictionary
|
|
17
|
-
(search_for_value_given_key key (r json_object))
|
|
18
|
-
)
|
|
19
|
-
)
|
|
20
|
-
(search_for_value_given_key key (r json_object))
|
|
21
|
-
)
|
|
22
|
-
()
|
|
23
|
-
)
|
|
24
|
-
)
|
|
25
|
-
)
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
(
|
|
2
|
-
(defun simplify_merkle_proof_after_leaf (leaf_hash (bitpath . hashes_path))
|
|
3
|
-
(if hashes_path
|
|
4
|
-
(simplify_merkle_proof_after_leaf
|
|
5
|
-
(if (logand 1 bitpath)
|
|
6
|
-
(sha256 0x02 (f hashes_path) leaf_hash)
|
|
7
|
-
(sha256 0x02 leaf_hash (f hashes_path))
|
|
8
|
-
)
|
|
9
|
-
(c (lsh bitpath -1) (r hashes_path))
|
|
10
|
-
)
|
|
11
|
-
leaf_hash
|
|
12
|
-
)
|
|
13
|
-
)
|
|
14
|
-
|
|
15
|
-
(defun-inline simplify_merkle_proof (leaf proof)
|
|
16
|
-
(simplify_merkle_proof_after_leaf (sha256 0x01 leaf) proof)
|
|
17
|
-
)
|
|
18
|
-
)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
ff02ffff01ff04ffff04ff04ffff04ff05ffff04ff0bff80808080ffff04ffff04ff06ffff01ff808080ff808080ffff04ffff01ff333cff018080
|