chik_sdk_bindings/
constants.rs

1#![allow(clippy::wildcard_imports)]
2
3use binky::Result;
4use chik_protocol::Program;
5use chik_puzzles::*;
6use chik_sdk_types::puzzles::{
7    OPTION_CONTRACT_PUZZLE as OPTION_CONTRACT, OPTION_CONTRACT_PUZZLE_HASH as OPTION_CONTRACT_HASH,
8    P2_CURRIED_PUZZLE as P2_CURRIED, P2_CURRIED_PUZZLE_HASH as P2_CURRIED_HASH,
9};
10use klvm_utils::TreeHash;
11use paste::paste;
12
13#[derive(Clone)]
14pub struct Constants;
15
16macro_rules! puzzle_constants {
17    ( $( $lower:ident => $upper:ident, )* ) => {
18        paste! {
19            impl Constants {
20                $( pub fn $lower() -> Result<Program> {
21                    Ok($upper.to_vec().into())
22                } )*
23
24                $( pub fn [<$lower _hash>]() -> Result<TreeHash> {
25                    Ok([<$upper _HASH>].into())
26                } )*
27            }
28        }
29    };
30}
31
32// Keep this as up to date as possible with chik-puzzles and chik-sdk-types
33puzzle_constants! {
34    // chik-puzzles
35    acs_transfer_program => ACS_TRANSFER_PROGRAM,
36    augmented_condition => AUGMENTED_CONDITION,
37    block_program_zero => BLOCK_PROGRAM_ZERO,
38    cat_puzzle => CAT_PUZZLE,
39    chiklisp_deserialisation => CHIKLISP_DESERIALISATION,
40    conditions_w_fee_announce => CONDITIONS_W_FEE_ANNOUNCE,
41    covenant_layer => COVENANT_LAYER,
42    create_nft_launcher_from_did => CREATE_NFT_LAUNCHER_FROM_DID,
43    credential_restriction => CREDENTIAL_RESTRICTION,
44    dao_cat_eve => DAO_CAT_EVE,
45    dao_cat_launcher => DAO_CAT_LAUNCHER,
46    dao_finished_state => DAO_FINISHED_STATE,
47    dao_lockup => DAO_LOCKUP,
48    dao_proposal => DAO_PROPOSAL,
49    dao_proposal_timer => DAO_PROPOSAL_TIMER,
50    dao_proposal_validator => DAO_PROPOSAL_VALIDATOR,
51    dao_spend_p2_singleton => DAO_SPEND_P2_SINGLETON,
52    dao_treasury => DAO_TREASURY,
53    dao_update_proposal => DAO_UPDATE_PROPOSAL,
54    decompress_coin_spend_entry => DECOMPRESS_COIN_SPEND_ENTRY,
55    decompress_coin_spend_entry_with_prefix => DECOMPRESS_COIN_SPEND_ENTRY_WITH_PREFIX,
56    decompress_puzzle => DECOMPRESS_PUZZLE,
57    delegated_tail => DELEGATED_TAIL,
58    did_innerpuzzle => DID_INNERPUZ,
59    eml_covenant_morpher => EML_COVENANT_MORPHER,
60    eml_transfer_program_covenant_adapter => EML_TRANSFER_PROGRAM_COVENANT_ADAPTER,
61    eml_update_metadata_with_did => EML_UPDATE_METADATA_WITH_DID,
62    everything_with_signature => EVERYTHING_WITH_SIGNATURE,
63    exigent_metadata_layer => EXIGENT_METADATA_LAYER,
64    flag_proofs_checker => FLAG_PROOFS_CHECKER,
65    genesis_by_coin_id => GENESIS_BY_COIN_ID,
66    genesis_by_coin_id_or_singleton => GENESIS_BY_COIN_ID_OR_SINGLETON,
67    genesis_by_puzzle_hash => GENESIS_BY_PUZZLE_HASH,
68    graftroot_dl_offers => GRAFTROOT_DL_OFFERS,
69    nft_intermediate_launcher => NFT_INTERMEDIATE_LAUNCHER,
70    nft_metadata_updater_default => NFT_METADATA_UPDATER_DEFAULT,
71    nft_metadata_updater_updateable => NFT_METADATA_UPDATER_UPDATEABLE,
72    nft_ownership_layer => NFT_OWNERSHIP_LAYER,
73    nft_ownership_transfer_program_one_way_claim_with_royalties => NFT_OWNERSHIP_TRANSFER_PROGRAM_ONE_WAY_CLAIM_WITH_ROYALTIES,
74    nft_state_layer => NFT_STATE_LAYER,
75    notification => NOTIFICATION,
76    p2_1_of_n => P2_1_OF_N,
77    p2_announced_delegated_puzzle => P2_ANNOUNCED_DELEGATED_PUZZLE,
78    p2_conditions => P2_CONDITIONS,
79    p2_delegated_conditions => P2_DELEGATED_CONDITIONS,
80    p2_delegated_puzzle => P2_DELEGATED_PUZZLE,
81    p2_delegated_puzzle_or_hidden_puzzle => P2_DELEGATED_PUZZLE_OR_HIDDEN_PUZZLE,
82    p2_m_of_n_delegate_direct => P2_M_OF_N_DELEGATE_DIRECT,
83    p2_parent => P2_PARENT,
84    p2_puzzle_hash => P2_PUZZLE_HASH,
85    p2_singleton => P2_SINGLETON,
86    p2_singleton_aggregator => P2_SINGLETON_AGGREGATOR,
87    p2_singleton_or_delayed_puzzle_hash => P2_SINGLETON_OR_DELAYED_PUZHASH,
88    p2_singleton_via_delegated_puzzle => P2_SINGLETON_VIA_DELEGATED_PUZZLE,
89    pool_member_innerpuzzle => POOL_MEMBER_INNERPUZ,
90    pool_waitingroom_innerpuzzle => POOL_WAITINGROOM_INNERPUZ,
91    revocation_layer => REVOCATION_LAYER,
92    rom_bootstrap_generator => ROM_BOOTSTRAP_GENERATOR,
93    settlement_payment => SETTLEMENT_PAYMENT,
94    singleton_launcher => SINGLETON_LAUNCHER,
95    singleton_top_layer => SINGLETON_TOP_LAYER,
96    singleton_top_layer_v1_1 => SINGLETON_TOP_LAYER_V1_1,
97    standard_vc_revocation_puzzle => STANDARD_VC_REVOCATION_PUZZLE,
98    std_parent_morpher => STD_PARENT_MORPHER,
99
100    // chik-sdk-types
101    option_contract => OPTION_CONTRACT,
102    p2_curried => P2_CURRIED,
103}