sbpf_debugger/
execution_cost.rs1#[derive(Debug, Clone)]
4pub struct ExecutionCost {
5 pub syscall_base_cost: u64,
6 pub log_64_units: u64,
7 pub log_pubkey_units: u64,
8 pub create_program_address_units: u64,
9 pub invoke_units: u64,
10 pub max_cpi_instruction_size: u64,
11 pub cpi_bytes_per_unit: u64,
12 pub max_instruction_stack_depth: usize,
13 pub max_instruction_trace_length: usize,
14 pub sha256_base_cost: u64,
15 pub sha256_byte_cost: u64,
16 pub sha256_max_slices: u64,
17 pub sysvar_base_cost: u64,
18 pub secp256k1_recover_cost: u64,
19 pub curve25519_edwards_validate_point_cost: u64,
20 pub curve25519_edwards_add_cost: u64,
21 pub curve25519_edwards_subtract_cost: u64,
22 pub curve25519_edwards_multiply_cost: u64,
23 pub curve25519_edwards_msm_base_cost: u64,
24 pub curve25519_edwards_msm_incremental_cost: u64,
25 pub curve25519_ristretto_validate_point_cost: u64,
26 pub curve25519_ristretto_add_cost: u64,
27 pub curve25519_ristretto_subtract_cost: u64,
28 pub curve25519_ristretto_multiply_cost: u64,
29 pub curve25519_ristretto_msm_base_cost: u64,
30 pub curve25519_ristretto_msm_incremental_cost: u64,
31 pub heap_size: u64,
32 pub heap_cost: u64,
33 pub mem_op_base_cost: u64,
34 pub alt_bn128_addition_cost: u64,
35 pub alt_bn128_multiplication_cost: u64,
36 pub alt_bn128_pairing_one_pair_cost_first: u64,
37 pub alt_bn128_pairing_one_pair_cost_other: u64,
38 pub alt_bn128_g1_compress: u64,
39 pub alt_bn128_g1_decompress: u64,
40 pub alt_bn128_g2_compress: u64,
41 pub alt_bn128_g2_decompress: u64,
42 pub big_modular_exponentiation_cost: u64,
43 pub poseidon_cost_coefficient_a: u64,
44 pub poseidon_cost_coefficient_c: u64,
45 pub get_remaining_compute_units_cost: u64,
46}
47
48impl Default for ExecutionCost {
49 fn default() -> Self {
50 Self {
51 syscall_base_cost: 100,
52 log_64_units: 100,
53 log_pubkey_units: 100,
54 create_program_address_units: 1500,
55 invoke_units: 1000,
56 max_cpi_instruction_size: 46 * 1024,
57 cpi_bytes_per_unit: 250,
58 max_instruction_stack_depth: 5,
59 max_instruction_trace_length: 64,
60 sha256_base_cost: 85,
61 sha256_byte_cost: 1,
62 sha256_max_slices: 20_000,
63 sysvar_base_cost: 100,
64 secp256k1_recover_cost: 25_000,
65 curve25519_edwards_validate_point_cost: 159,
66 curve25519_edwards_add_cost: 473,
67 curve25519_edwards_subtract_cost: 475,
68 curve25519_edwards_multiply_cost: 2_177,
69 curve25519_edwards_msm_base_cost: 2_273,
70 curve25519_edwards_msm_incremental_cost: 758,
71 curve25519_ristretto_validate_point_cost: 169,
72 curve25519_ristretto_add_cost: 521,
73 curve25519_ristretto_subtract_cost: 519,
74 curve25519_ristretto_multiply_cost: 2_208,
75 curve25519_ristretto_msm_base_cost: 2_303,
76 curve25519_ristretto_msm_incremental_cost: 788,
77 heap_size: 32 * 1024,
78 heap_cost: 8,
79 mem_op_base_cost: 10,
80 alt_bn128_addition_cost: 334,
81 alt_bn128_multiplication_cost: 3_840,
82 alt_bn128_pairing_one_pair_cost_first: 36_364,
83 alt_bn128_pairing_one_pair_cost_other: 12_121,
84 alt_bn128_g1_compress: 30,
85 alt_bn128_g1_decompress: 398,
86 alt_bn128_g2_compress: 86,
87 alt_bn128_g2_decompress: 13_610,
88 big_modular_exponentiation_cost: 33,
89 poseidon_cost_coefficient_a: 61,
90 poseidon_cost_coefficient_c: 542,
91 get_remaining_compute_units_cost: 100,
92 }
93 }
94}