Constant clarity_repl::contracts::COSTS_CONTRACT[][src]

pub const COSTS_CONTRACT: &'static str = ";; the .costs contract\n\n;; Helper Functions\n\n;; Return a Cost Specification with just a runtime cost\n(define-private (runtime (r uint))\n    {\n        runtime: r,\n        write_length: u0,\n        write_count: u0,\n        read_count: u0,\n        read_length: u0,\n    })\n\n;; Linear cost-assessment function\n(define-private (linear (n uint) (a uint) (b uint))\n    (+ (* a n) b))\n\n;; LogN cost-assessment function\n(define-private (logn (n uint) (a uint) (b uint))\n    (+ (* a (log2 n)) b))\n\n;; NLogN cost-assessment function\n(define-private (nlogn (n uint) (a uint) (b uint))\n    (+ (* a (* n (log2 n))) b))\n\n\n;; Cost Functions\n(define-read-only (cost_analysis_type_annotate (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_analysis_type_check (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_analysis_type_lookup (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_analysis_visit (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_analysis_iterable_func (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_analysis_option_cons (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_analysis_option_check (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_analysis_bind_name (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_analysis_list_items_check (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_analysis_check_tuple_get (n uint))\n    (runtime (logn n u1000 u1000)))\n\n(define-read-only (cost_analysis_check_tuple_merge (n uint)) \n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_analysis_check_tuple_cons (n uint))\n    (runtime (nlogn n u1000 u1000)))\n\n(define-read-only (cost_analysis_tuple_items_check (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_analysis_check_let (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_analysis_lookup_function (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_analysis_lookup_function_types (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_analysis_lookup_variable_const (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_analysis_lookup_variable_depth (n uint))\n    (runtime (nlogn n u1000 u1000)))\n\n;; ast-parse is a very expensive linear operation, \n;;   primarily because it does the work of capturing\n;;   most of the analysis phase\'s linear cost, but also\n;;   because the most expensive part of the analysis phase \n;;   is the ast\n(define-read-only (cost_ast_parse (n uint))\n    (runtime (linear n u10000 u1000)))\n\n(define-read-only (cost_ast_cycle_detection (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_analysis_storage (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: (linear n u1 u1),\n        write_count: u1,\n        read_count: u1,\n        read_length: u1\n    })\n\n(define-read-only (cost_analysis_use_trait_entry (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: (linear n u1 u1),\n        write_count: u0,\n        read_count: u1,\n        read_length: (linear n u1 u1)\n    })\n\n(define-read-only (cost_analysis_get_function_entry (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: (linear n u1 u1)\n    })\n\n(define-read-only (cost_analysis_fetch_contract_entry (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: (linear n u1 u1)\n    })\n\n(define-read-only (cost_lookup_variable_depth (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_lookup_variable_size (n uint))\n    (runtime (linear n u1000 u0)))\n\n(define-read-only (cost_lookup_function (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_bind_name (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_inner_type_check_cost (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_user_function_application (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_let (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_if (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_asserts (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_map (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_filter (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_len (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_element_at (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_index_of (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_fold (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_list_cons (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_type_parse_step (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_data_hash_cost (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_tuple_get (n uint))\n    (runtime (nlogn n u1000 u1000)))\n\n(define-read-only (cost_tuple_merge (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_tuple_cons (n uint))\n    (runtime (nlogn n u1000 u1000)))\n\n(define-read-only (cost_add (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_sub (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_mul (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_div (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_geq (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_leq (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_le (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_ge  (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_int_cast (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_mod (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_pow (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_sqrti (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_log2 (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_xor (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_not (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_eq (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_begin (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_hash160 (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_sha256 (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_sha512 (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_sha512t256 (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_keccak256 (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_secp256k1recover (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_secp256k1verify (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_print (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_some_cons (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_ok_cons (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_err_cons (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_default_to (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_unwrap_ret (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_unwrap_err_or_ret (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_is_okay (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_is_none (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_is_err (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_is_some (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_unwrap (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_unwrap_err (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_try_ret (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_match (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_or (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_and (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_append (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_concat (n uint))\n    (runtime (linear n u1000 u1000)))\n\n(define-read-only (cost_as_max_len (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_contract_call (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_contract_of (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_principal_of (n uint))\n    (runtime u1000))\n\n(define-read-only (cost_at_block (n uint))\n    {\n        runtime: u1000,\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: u1\n    })\n\n(define-read-only (cost_load_contract (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: u0,\n        write_count: u0,\n        ;; set to 3 because of the associated metadata loads\n        read_count: u3,\n        read_length: (linear n u1 u1)\n    })\n\n(define-read-only (cost_create_map (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: (linear n u1 u1),\n        write_count: u1,\n        read_count: u0,\n        read_length: u0\n    })\n\n(define-read-only (cost_create_var (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: (linear n u1 u1),\n        write_count: u2,\n        read_count: u0,\n        read_length: u0\n    })\n\n(define-read-only (cost_create_nft (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: (linear n u1 u1),\n        write_count: u1,\n        read_count: u0,\n        read_length: u0\n    })\n\n(define-read-only (cost_create_ft (n uint))\n    {\n        runtime: u1000,\n        write_length: u1,\n        write_count: u2,\n        read_count: u0,\n        read_length: u0\n    })\n\n(define-read-only (cost_fetch_entry (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: (linear n u1 u1)\n    })\n\n(define-read-only (cost_set_entry (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: (linear n u1 u1),\n        write_count: u1,\n        read_count: u1,\n        read_length: u0\n    })\n\n(define-read-only (cost_fetch_var (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: (linear n u1 u1)\n    })\n\n(define-read-only (cost_set_var (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: (linear n u1 u1),\n        write_count: u1,\n        read_count: u1,\n        read_length: u0\n    })\n\n(define-read-only (cost_contract_storage (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: (linear n u1 u1),\n        write_count: u1,\n        read_count: u0,\n        read_length: u0\n    })\n\n(define-read-only (cost_block_info (n uint))\n    {\n        runtime: u1000,\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: u1\n    })\n\n(define-read-only (cost_stx_balance (n uint))\n    {\n        runtime: u1000,\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: u1\n    })\n\n(define-read-only (cost_stx_transfer (n uint))\n    {\n        runtime: u1000,\n        write_length: u1,\n        write_count: u1,\n        read_count: u1,\n        read_length: u1\n    })\n\n(define-read-only (cost_ft_mint (n uint))\n    {\n        runtime: u1000,\n        write_length: u1,\n        write_count: u2,\n        read_count: u2,\n        read_length: u1\n    })\n\n(define-read-only (cost_ft_transfer (n uint))\n    {\n        runtime: u1000,\n        write_length: u1,\n        write_count: u2,\n        read_count: u2,\n        read_length: u1\n    })\n\n(define-read-only (cost_ft_balance (n uint))\n    {\n        runtime: u1000,\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: u1\n    })\n\n(define-read-only (cost_nft_mint (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: u1,\n        write_count: u1,\n        read_count: u1,\n        read_length: u1\n    })\n\n(define-read-only (cost_nft_transfer (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: u1,\n        write_count: u1,\n        read_count: u1,\n        read_length: u1\n    })\n\n(define-read-only (cost_nft_owner (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: u1\n    })\n\n(define-read-only (cost_ft_get_supply (n uint))\n    {\n        runtime: u1000,\n        write_length: u0,\n        write_count: u0,\n        read_count: u1,\n        read_length: u1\n    })\n\n(define-read-only (cost_ft_burn (n uint))\n    {\n        runtime: u1000,\n        write_length: u1,\n        write_count: u2,\n        read_count: u2,\n        read_length: u1\n    })\n\n(define-read-only (cost_nft_burn (n uint))\n    {\n        runtime: (linear n u1000 u1000),\n        write_length: u1,\n        write_count: u1,\n        read_count: u1,\n        read_length: u1\n    })\n\n(define-read-only (poison_microblock (n uint))\n    {\n        runtime: u1000,\n        write_length: u1,\n        write_count: u1,\n        read_count: u1, \n        read_length: u1\n    })\n";