Fix parsing of v3 cost model

Closes #1002.
This commit is contained in:
KtorZ 2024-08-24 18:26:02 +02:00
parent a71d7c260c
commit 8dfaa1bf90
No known key found for this signature in database
GPG Key ID: 33173CB6F77F4277
1 changed files with 194 additions and 162 deletions

View File

@ -2741,258 +2741,263 @@ pub fn initialize_cost_model(version: &Language, costs: &[i64]) -> CostModel {
}
}
Language::PlutusV3 => {
assert!(
costs.len() == 251,
"expecting 251 cost parameters, but got {:?}",
costs.len()
);
hashmap! {
"add_integer-cpu-arguments-intercept" => costs[0],
"add_integer-cpu-arguments-slope" => costs[1],
"add_integer-memory-arguments-intercept" => costs[2],
"add_integer-memory-arguments-slope" => costs[3],
"add_integer-mem-arguments-intercept" => costs[2],
"add_integer-mem-arguments-slope" => costs[3],
"append_byte_string-cpu-arguments-intercept" => costs[4],
"append_byte_string-cpu-arguments-slope" => costs[5],
"append_byte_string-memory-arguments-intercept" => costs[6],
"append_byte_string-memory-arguments-slope" => costs[7],
"append_byte_string-mem-arguments-intercept" => costs[6],
"append_byte_string-mem-arguments-slope" => costs[7],
"append_string-cpu-arguments-intercept" => costs[8],
"append_string-cpu-arguments-slope" => costs[9],
"append_string-memory-arguments-intercept" => costs[10],
"append_string-memory-arguments-slope" => costs[11],
"append_string-mem-arguments-intercept" => costs[10],
"append_string-mem-arguments-slope" => costs[11],
"b_data-cpu-arguments" => costs[12],
"b_data-memory-arguments" => costs[13],
"b_data-mem-arguments" => costs[13],
"blake2b_256-cpu-arguments-intercept" => costs[14],
"blake2b_256-cpu-arguments-slope" => costs[15],
"blake2b_256-memory-arguments" => costs[16],
"blake2b_256-mem-arguments" => costs[16],
"cek_apply_cost-exBudgetCPU" => costs[17],
"cek_apply_cost-exBudgetMemory" => costs[18],
"cek_apply_cost-exBudgetmem" => costs[18],
"cek_builtin_cost-exBudgetCPU" => costs[19],
"cek_builtin_cost-exBudgetMemory" => costs[20],
"cek_builtin_cost-exBudgetmem" => costs[20],
"cek_const_cost-exBudgetCPU" => costs[21],
"cek_const_cost-exBudgetMemory" => costs[22],
"cek_const_cost-exBudgetmem" => costs[22],
"cek_delay_cost-exBudgetCPU" => costs[23],
"cek_delay_cost-exBudgetMemory" => costs[24],
"cek_delay_cost-exBudgetmem" => costs[24],
"cek_force_cost-exBudgetCPU" => costs[25],
"cek_force_cost-exBudgetMemory" => costs[26],
"cek_force_cost-exBudgetmem" => costs[26],
"cek_lam_cost-exBudgetCPU" => costs[27],
"cek_lam_cost-exBudgetMemory" => costs[28],
"cek_lam_cost-exBudgetmem" => costs[28],
"cek_startup_cost-exBudgetCPU" => costs[29],
"cek_startup_cost-exBudgetMemory" => costs[30],
"cek_startup_cost-exBudgetmem" => costs[30],
"cek_var_cost-exBudgetCPU" => costs[31],
"cek_var_cost-exBudgetMemory" => costs[32],
"cek_var_cost-exBudgetmem" => costs[32],
"choose_data-cpu-arguments" => costs[33],
"choose_data-memory-arguments" => costs[34],
"choose_data-mem-arguments" => costs[34],
"choose_list-cpu-arguments" => costs[35],
"choose_list-memory-arguments" => costs[36],
"choose_list-mem-arguments" => costs[36],
"choose_unit-cpu-arguments" => costs[37],
"choose_unit-memory-arguments" => costs[38],
"choose_unit-mem-arguments" => costs[38],
"cons_byte_string-cpu-arguments-intercept" => costs[39],
"cons_byte_string-cpu-arguments-slope" => costs[40],
"cons_byte_string-memory-arguments-intercept" => costs[41],
"cons_byte_string-memory-arguments-slope" => costs[42],
"cons_byte_string-mem-arguments-intercept" => costs[41],
"cons_byte_string-mem-arguments-slope" => costs[42],
"constr_data-cpu-arguments" => costs[43],
"constr_data-memory-arguments" => costs[44],
"constr_data-mem-arguments" => costs[44],
"decode_utf8-cpu-arguments-intercept" => costs[45],
"decode_utf8-cpu-arguments-slope" => costs[46],
"decode_utf8-memory-arguments-intercept" => costs[47],
"decode_utf8-memory-arguments-slope" => costs[48],
"decode_utf8-mem-arguments-intercept" => costs[47],
"decode_utf8-mem-arguments-slope" => costs[48],
"divide_integer-cpu-arguments-constant" => costs[49],
"divide_integer-cpu-arguments-model-arguments-c00" => costs[50],
"divide_integer-cpu-arguments-model-arguments-c01" => costs[51],
"divide_integer-cpu-arguments-model-arguments-c02" => costs[52],
"divide_integer-cpu-arguments-model-arguments-c10" => costs[53],
"divide_integer-cpu-arguments-model-arguments-c11" => costs[54],
"divide_integer-cpu-arguments-model-arguments-c20" => costs[55],
"divide_integer-cpu-arguments-model-arguments-minimum" => costs[56],
"divide_integer-memory-arguments-intercept" => costs[57],
"divide_integer-memory-arguments-minimum" => costs[58],
"divide_integer-memory-arguments-slope" => costs[59],
"divide_integer-cpu-arguments-c00" => costs[50],
"divide_integer-cpu-arguments-c01" => costs[51],
"divide_integer-cpu-arguments-c02" => costs[52],
"divide_integer-cpu-arguments-c10" => costs[53],
"divide_integer-cpu-arguments-c11" => costs[54],
"divide_integer-cpu-arguments-c20" => costs[55],
"divide_integer-cpu-arguments-minimum" => costs[56],
"divide_integer-mem-arguments-intercept" => costs[57],
"divide_integer-mem-arguments-minimum" => costs[58],
"divide_integer-mem-arguments-slope" => costs[59],
"encode_utf8-cpu-arguments-intercept" => costs[60],
"encode_utf8-cpu-arguments-slope" => costs[61],
"encode_utf8-memory-arguments-intercept" => costs[62],
"encode_utf8-memory-arguments-slope" => costs[63],
"encode_utf8-mem-arguments-intercept" => costs[62],
"encode_utf8-mem-arguments-slope" => costs[63],
"equals_byte_string-cpu-arguments-constant" => costs[64],
"equals_byte_string-cpu-arguments-intercept" => costs[65],
"equals_byte_string-cpu-arguments-slope" => costs[66],
"equals_byte_string-memory-arguments" => costs[67],
"equals_byte_string-mem-arguments" => costs[67],
"equals_data-cpu-arguments-intercept" => costs[68],
"equals_data-cpu-arguments-slope" => costs[69],
"equals_data-memory-arguments" => costs[70],
"equals_data-mem-arguments" => costs[70],
"equals_integer-cpu-arguments-intercept" => costs[71],
"equals_integer-cpu-arguments-slope" => costs[72],
"equals_integer-memory-arguments" => costs[73],
"equals_integer-mem-arguments" => costs[73],
"equals_string-cpu-arguments-constant" => costs[74],
"equals_string-cpu-arguments-intercept" => costs[75],
"equals_string-cpu-arguments-slope" => costs[76],
"equals_string-memory-arguments" => costs[77],
"equals_string-mem-arguments" => costs[77],
"fst_pair-cpu-arguments" => costs[78],
"fst_pair-memory-arguments" => costs[79],
"fst_pair-mem-arguments" => costs[79],
"head_list-cpu-arguments" => costs[80],
"head_list-memory-arguments" => costs[81],
"head_list-mem-arguments" => costs[81],
"i_data-cpu-arguments" => costs[82],
"i_data-memory-arguments" => costs[83],
"i_data-mem-arguments" => costs[83],
"if_then_else-cpu-arguments" => costs[84],
"if_then_else-memory-arguments" => costs[85],
"if_then_else-mem-arguments" => costs[85],
"index_byte_string-cpu-arguments" => costs[86],
"index_byte_string-memory-arguments" => costs[87],
"index_byte_string-mem-arguments" => costs[87],
"length_of_byte_string-cpu-arguments" => costs[88],
"length_of_byte_string-memory-arguments" => costs[89],
"length_of_byte_string-mem-arguments" => costs[89],
"less_than_byte_string-cpu-arguments-intercept" => costs[90],
"less_than_byte_string-cpu-arguments-slope" => costs[91],
"less_than_byte_string-memory-arguments" => costs[92],
"less_than_byte_string-mem-arguments" => costs[92],
"less_than_equals_byte_string-cpu-arguments-intercept" => costs[93],
"less_than_equals_byte_string-cpu-arguments-slope" => costs[94],
"less_than_equals_byte_string-memory-arguments" => costs[95],
"less_than_equals_byte_string-mem-arguments" => costs[95],
"less_than_equals_integer-cpu-arguments-intercept" => costs[96],
"less_than_equals_integer-cpu-arguments-slope" => costs[97],
"less_than_equals_integer-memory-arguments" => costs[98],
"less_than_equals_integer-mem-arguments" => costs[98],
"less_than_integer-cpu-arguments-intercept" => costs[99],
"less_than_integer-cpu-arguments-slope" => costs[100],
"less_than_integer-memory-arguments" => costs[101],
"less_than_integer-mem-arguments" => costs[101],
"list_data-cpu-arguments" => costs[102],
"list_data-memory-arguments" => costs[103],
"list_data-mem-arguments" => costs[103],
"map_data-cpu-arguments" => costs[104],
"map_data-memory-arguments" => costs[105],
"map_data-mem-arguments" => costs[105],
"mk_cons-cpu-arguments" => costs[106],
"mk_cons-memory-arguments" => costs[107],
"mk_cons-mem-arguments" => costs[107],
"mk_nil_data-cpu-arguments" => costs[108],
"mk_nil_data-memory-arguments" => costs[109],
"mk_nil_data-mem-arguments" => costs[109],
"mk_nil_pair_data-cpu-arguments" => costs[110],
"mk_nil_pair_data-memory-arguments" => costs[111],
"mk_nil_pair_data-mem-arguments" => costs[111],
"mk_pair_data-cpu-arguments" => costs[112],
"mk_pair_data-memory-arguments" => costs[113],
"mk_pair_data-mem-arguments" => costs[113],
"mod_integer-cpu-arguments-constant" => costs[114],
"mod_integer-cpu-arguments-model-arguments-c00" => costs[115],
"mod_integer-cpu-arguments-model-arguments-c01" => costs[116],
"mod_integer-cpu-arguments-model-arguments-c02" => costs[117],
"mod_integer-cpu-arguments-model-arguments-c10" => costs[118],
"mod_integer-cpu-arguments-model-arguments-c11" => costs[119],
"mod_integer-cpu-arguments-model-arguments-c20" => costs[120],
"mod_integer-cpu-arguments-model-arguments-minimum" => costs[121],
"mod_integer-memory-arguments-intercept" => costs[122],
"mod_integer-memory-arguments-slope" => costs[123],
"mod_integer-cpu-arguments-c00" => costs[115],
"mod_integer-cpu-arguments-c01" => costs[116],
"mod_integer-cpu-arguments-c02" => costs[117],
"mod_integer-cpu-arguments-c10" => costs[118],
"mod_integer-cpu-arguments-c11" => costs[119],
"mod_integer-cpu-arguments-c20" => costs[120],
"mod_integer-cpu-arguments-minimum" => costs[121],
"mod_integer-mem-arguments-intercept" => costs[122],
"mod_integer-mem-arguments-slope" => costs[123],
"multiply_integer-cpu-arguments-intercept" => costs[124],
"multiply_integer-cpu-arguments-slope" => costs[125],
"multiply_integer-memory-arguments-intercept" => costs[126],
"multiply_integer-memory-arguments-slope" => costs[127],
"multiply_integer-mem-arguments-intercept" => costs[126],
"multiply_integer-mem-arguments-slope" => costs[127],
"null_list-cpu-arguments" => costs[128],
"null_list-memory-arguments" => costs[129],
"null_list-mem-arguments" => costs[129],
"quotient_integer-cpu-arguments-constant" => costs[130],
"quotient_integer-cpu-arguments-model-arguments-c00" => costs[131],
"quotient_integer-cpu-arguments-model-arguments-c01" => costs[132],
"quotient_integer-cpu-arguments-model-arguments-c02" => costs[133],
"quotient_integer-cpu-arguments-model-arguments-c10" => costs[134],
"quotient_integer-cpu-arguments-model-arguments-c11" => costs[135],
"quotient_integer-cpu-arguments-model-arguments-c20" => costs[136],
"quotient_integer-cpu-arguments-model-arguments-minimum" => costs[137],
"quotient_integer-memory-arguments-intercept" => costs[138],
"quotient_integer-memory-arguments-minimum" => costs[139],
"quotient_integer-memory-arguments-slope" => costs[140],
"quotient_integer-cpu-arguments-c00" => costs[131],
"quotient_integer-cpu-arguments-c01" => costs[132],
"quotient_integer-cpu-arguments-c02" => costs[133],
"quotient_integer-cpu-arguments-c10" => costs[134],
"quotient_integer-cpu-arguments-c11" => costs[135],
"quotient_integer-cpu-arguments-c20" => costs[136],
"quotient_integer-cpu-arguments-minimum" => costs[137],
"quotient_integer-mem-arguments-intercept" => costs[138],
"quotient_integer-mem-arguments-minimum" => costs[139],
"quotient_integer-mem-arguments-slope" => costs[140],
"remainder_integer-cpu-arguments-constant" => costs[141],
"remainder_integer-cpu-arguments-model-arguments-c00" => costs[142],
"remainder_integer-cpu-arguments-model-arguments-c01" => costs[143],
"remainder_integer-cpu-arguments-model-arguments-c02" => costs[144],
"remainder_integer-cpu-arguments-model-arguments-c10" => costs[145],
"remainder_integer-cpu-arguments-model-arguments-c11" => costs[146],
"remainder_integer-cpu-arguments-model-arguments-c20" => costs[147],
"remainder_integer-cpu-arguments-model-arguments-minimum" => costs[148],
"remainder_integer-memory-arguments-intercept" => costs[149],
"remainder_integer-memory-arguments-slope" => costs[150],
"remainder_integer-cpu-arguments-c00" => costs[142],
"remainder_integer-cpu-arguments-c01" => costs[143],
"remainder_integer-cpu-arguments-c02" => costs[144],
"remainder_integer-cpu-arguments-c10" => costs[145],
"remainder_integer-cpu-arguments-c11" => costs[146],
"remainder_integer-cpu-arguments-c20" => costs[147],
"remainder_integer-cpu-arguments-minimum" => costs[148],
"remainder_integer-mem-arguments-intercept" => costs[149],
"remainder_integer-mem-arguments-slope" => costs[150],
"serialise_data-cpu-arguments-intercept" => costs[151],
"serialise_data-cpu-arguments-slope" => costs[152],
"serialise_data-memory-arguments-intercept" => costs[153],
"serialise_data-memory-arguments-slope" => costs[154],
"serialise_data-mem-arguments-intercept" => costs[153],
"serialise_data-mem-arguments-slope" => costs[154],
"sha2_256-cpu-arguments-intercept" => costs[155],
"sha2_256-cpu-arguments-slope" => costs[156],
"sha2_256-memory-arguments" => costs[157],
"sha2_256-mem-arguments" => costs[157],
"sha3_256-cpu-arguments-intercept" => costs[158],
"sha3_256-cpu-arguments-slope" => costs[159],
"sha3_256-memory-arguments" => costs[160],
"sha3_256-mem-arguments" => costs[160],
"slice_byte_string-cpu-arguments-intercept" => costs[161],
"slice_byte_string-cpu-arguments-slope" => costs[162],
"slice_byte_string-memory-arguments-intercept" => costs[163],
"slice_byte_string-memory-arguments-slope" => costs[164],
"slice_byte_string-mem-arguments-intercept" => costs[163],
"slice_byte_string-mem-arguments-slope" => costs[164],
"snd_pair-cpu-arguments" => costs[165],
"snd_pair-memory-arguments" => costs[166],
"snd_pair-mem-arguments" => costs[166],
"subtract_integer-cpu-arguments-intercept" => costs[167],
"subtract_integer-cpu-arguments-slope" => costs[168],
"subtract_integer-memory-arguments-intercept" => costs[169],
"subtract_integer-memory-arguments-slope" => costs[170],
"subtract_integer-mem-arguments-intercept" => costs[169],
"subtract_integer-mem-arguments-slope" => costs[170],
"tail_list-cpu-arguments" => costs[171],
"tail_list-memory-arguments" => costs[172],
"tail_list-mem-arguments" => costs[172],
"trace-cpu-arguments" => costs[173],
"trace-memory-arguments" => costs[174],
"trace-mem-arguments" => costs[174],
"un_b_data-cpu-arguments" => costs[175],
"un_b_data-memory-arguments" => costs[176],
"un_b_data-mem-arguments" => costs[176],
"un_constr_data-cpu-arguments" => costs[177],
"un_constr_data-memory-arguments" => costs[178],
"un_constr_data-mem-arguments" => costs[178],
"un_i_data-cpu-arguments" => costs[179],
"un_i_data-memory-arguments" => costs[180],
"un_i_data-mem-arguments" => costs[180],
"un_list_data-cpu-arguments" => costs[181],
"un_list_data-memory-arguments" => costs[182],
"un_list_data-mem-arguments" => costs[182],
"un_map_data-cpu-arguments" => costs[183],
"un_map_data-memory-arguments" => costs[184],
"un_map_data-mem-arguments" => costs[184],
"verify_ecdsa_secp256k1_signature-cpu-arguments" => costs[185],
"verify_ecdsa_secp256k1_signature-memory-arguments" => costs[186],
"verify_ecdsa_secp256k1_signature-mem-arguments" => costs[186],
"verify_ed25519_signature-cpu-arguments-intercept" => costs[187],
"verify_ed25519_signature-cpu-arguments-slope" => costs[188],
"verify_ed25519_signature-memory-arguments" => costs[189],
"verify_ed25519_signature-mem-arguments" => costs[189],
"verify_schnorr_secp256k1_signature-cpu-arguments-intercept" => costs[190],
"verify_schnorr_secp256k1_signature-cpu-arguments-slope" => costs[191],
"verify_schnorr_secp256k1_signature-memory-arguments" => costs[192],
"verify_schnorr_secp256k1_signature-mem-arguments" => costs[192],
"cek_constr_cost-exBudgetCPU" => costs[193],
"cek_constr_cost-exBudgetMemory" => costs[194],
"cek_constr_cost-exBudgetmem" => costs[194],
"cek_case_cost-exBudgetCPU" => costs[195],
"cek_case_cost-exBudgetMemory" => costs[196],
"bls12_381_g1_add-cpu-arguments" => costs[197],
"bls12_381_g1_add-memory-arguments" => costs[198],
"bls12_381_g1_compress-cpu-arguments" => costs[199],
"bls12_381_g1_compress-memory-arguments" => costs[200],
"bls12_381_g1_equal-cpu-arguments" => costs[201],
"bls12_381_g1_equal-memory-arguments" => costs[202],
"bls12_381_g1_hash_to_group-cpu-arguments-intercept" => costs[203],
"bls12_381_g1_hash_to_group-cpu-arguments-slope" => costs[204],
"bls12_381_g1_hash_to_group-memory-arguments" => costs[205],
"bls12_381_g1_neg-cpu-arguments" => costs[206],
"bls12_381_g1_neg-memory-arguments" => costs[207],
"bls12_381_g1_scalar_mul-cpu-arguments-intercept" => costs[208],
"bls12_381_g1_scalar_mul-cpu-arguments-slope" => costs[209],
"bls12_381_g1_scalar_mul-memory-arguments" => costs[210],
"bls12_381_g1_uncompress-cpu-arguments" => costs[211],
"bls12_381_g1_uncompress-memory-arguments" => costs[212],
"bls12_381_g2_add-cpu-arguments" => costs[213],
"bls12_381_g2_add-memory-arguments" => costs[214],
"bls12_381_g2_compress-cpu-arguments" => costs[215],
"bls12_381_g2_compress-memory-arguments" => costs[216],
"bls12_381_g2_equal-cpu-arguments" => costs[217],
"bls12_381_g2_equal-memory-arguments" => costs[218],
"bls12_381_g2_hash_to_group-cpu-arguments-intercept" => costs[219],
"bls12_381_g2_hash_to_group-cpu-arguments-slope" => costs[220],
"bls12_381_g2_hash_to_group-memory-arguments" => costs[221],
"bls12_381_g2_neg-cpu-arguments" => costs[222],
"bls12_381_g2_neg-memory-arguments" => costs[223],
"bls12_381_g2_scalar_mul-cpu-arguments-intercept" => costs[224],
"bls12_381_g2_scalar_mul-cpu-arguments-slope" => costs[225],
"bls12_381_g2_scalar_mul-memory-arguments" => costs[226],
"bls12_381_g2_uncompress-cpu-arguments" => costs[227],
"bls12_381_g2_uncompress-memory-arguments" => costs[228],
"bls12_381_final_verify-cpu-arguments" => costs[229],
"bls12_381_final_verify-memory-arguments" => costs[230],
"bls12_381_miller_loop-cpu-arguments" => costs[231],
"bls12_381_miller_loop-memory-arguments" => costs[232],
"bls12_381_mul_ml_result-cpu-arguments" => costs[233],
"bls12_381_mul_ml_result-memory-arguments" => costs[234],
"cek_case_cost-exBudgetmem" => costs[196],
"bls12_381_G1_add-cpu-arguments" => costs[197],
"bls12_381_G1_add-mem-arguments" => costs[198],
"bls12_381_G1_compress-cpu-arguments" => costs[199],
"bls12_381_G1_compress-mem-arguments" => costs[200],
"bls12_381_G1_equal-cpu-arguments" => costs[201],
"bls12_381_G1_equal-mem-arguments" => costs[202],
"bls12_381_G1_hashToGroup-cpu-arguments-intercept" => costs[203],
"bls12_381_G1_hashToGroup-cpu-arguments-slope" => costs[204],
"bls12_381_G1_hashToGroup-mem-arguments" => costs[205],
"bls12_381_G1_neg-cpu-arguments" => costs[206],
"bls12_381_G1_neg-mem-arguments" => costs[207],
"bls12_381_G1_scalarMul-cpu-arguments-intercept" => costs[208],
"bls12_381_G1_scalarMul-cpu-arguments-slope" => costs[209],
"bls12_381_G1_scalarMul-mem-arguments" => costs[210],
"bls12_381_G1_uncompress-cpu-arguments" => costs[211],
"bls12_381_G1_uncompress-mem-arguments" => costs[212],
"bls12_381_G2_add-cpu-arguments" => costs[213],
"bls12_381_G2_add-mem-arguments" => costs[214],
"bls12_381_G2_compress-cpu-arguments" => costs[215],
"bls12_381_G2_compress-mem-arguments" => costs[216],
"bls12_381_G2_equal-cpu-arguments" => costs[217],
"bls12_381_G2_equal-mem-arguments" => costs[218],
"bls12_381_G2_hashToGroup-cpu-arguments-intercept" => costs[219],
"bls12_381_G2_hashToGroup-cpu-arguments-slope" => costs[220],
"bls12_381_G2_hashToGroup-mem-arguments" => costs[221],
"bls12_381_G2_neg-cpu-arguments" => costs[222],
"bls12_381_G2_neg-mem-arguments" => costs[223],
"bls12_381_G2_scalarMul-cpu-arguments-intercept" => costs[224],
"bls12_381_G2_scalarMul-cpu-arguments-slope" => costs[225],
"bls12_381_G2_scalarMul-mem-arguments" => costs[226],
"bls12_381_G2_uncompress-cpu-arguments" => costs[227],
"bls12_381_G2_uncompress-mem-arguments" => costs[228],
"bls12_381_finalVerify-cpu-arguments" => costs[229],
"bls12_381_finalVerify-mem-arguments" => costs[230],
"bls12_381_millerLoop-cpu-arguments" => costs[231],
"bls12_381_millerLoop-mem-arguments" => costs[232],
"bls12_381_mulMlResult-cpu-arguments" => costs[233],
"bls12_381_mulMlResult-mem-arguments" => costs[234],
"keccak_256-cpu-arguments-intercept" => costs[235],
"keccak_256-cpu-arguments-slope" => costs[236],
"keccak_256-memory-arguments" => costs[237],
"keccak_256-mem-arguments" => costs[237],
"blake2b_224-cpu-arguments-intercept" => costs[238],
"blake2b_224-cpu-arguments-slope" => costs[239],
"blake2b_224-memory-arguments" => costs[240],
"integer_to_byte_string-cpu-arguments-c0" => costs[241],
"integer_to_byte_string-cpu-arguments-c1" => costs[242],
"integer_to_byte_string-cpu-arguments-c2" => costs[243],
"integer_to_byte_string-memory-arguments-intercept" => costs[244],
"integer_to_byte_string-memory-arguments-slope" => costs[245],
"byte_string_to_integer-cpu-arguments-c0" => costs[246],
"byte_string_to_integer-cpu-arguments-c1" => costs[247],
"byte_string_to_integer-cpu-arguments-c2" => costs[248],
"byte_string_to_integer-memory-arguments-intercept" => costs[249],
"byte_string_to_integer-memory-arguments-slope" => costs[250]
"blake2b_224-mem-arguments-slope" => costs[240],
"integerToByteString-cpu-arguments-c0" => costs[241],
"integerToByteString-cpu-arguments-c1" => costs[242],
"integerToByteString-cpu-arguments-c2" => costs[243],
"integerToByteString-mem-arguments-intercept" => costs[244],
"integerToByteString-mem-arguments-slope" => costs[245],
"byteStringToInteger-cpu-arguments-c0" => costs[246],
"byteStringToInteger-cpu-arguments-c1" => costs[247],
"byteStringToInteger-cpu-arguments-c2" => costs[248],
"byteStringToInteger-mem-arguments-intercept" => costs[249],
"byteStringToInteger-mem-arguments-slope" => costs[250]
}
}
};
@ -4312,10 +4317,10 @@ pub fn initialize_cost_model(version: &Language, costs: &[i64]) -> CostModel {
}),
mem: ThreeArguments::LiteralInYorLinearInZ(LinearSize {
intercept: *cost_map
.get("integerToByteString-cpu-arguments-intercept")
.get("integerToByteString-mem-arguments-intercept")
.unwrap_or(&30000000000),
slope: *cost_map
.get("integerToByteString-cpu-arguments-slope")
.get("integerToByteString-mem-arguments-slope")
.unwrap_or(&30000000000),
}),
},
@ -4333,10 +4338,10 @@ pub fn initialize_cost_model(version: &Language, costs: &[i64]) -> CostModel {
}),
mem: TwoArguments::LinearInY(LinearSize {
intercept: *cost_map
.get("byteStringToInteger-cpu-arguments-intercept")
.get("byteStringToInteger-mem-arguments-intercept")
.unwrap_or(&30000000000),
slope: *cost_map
.get("byteStringToInteger-cpu-arguments-slope")
.get("byteStringToInteger-mem-arguments-slope")
.unwrap_or(&30000000000),
}),
},
@ -4631,4 +4636,31 @@ mod tests {
assert_eq!(CostModel::v2(), cost_model);
}
#[test]
fn assert_default_cost_model_v3_mainnet_2024_08_24() {
let costs: Vec<i64> = vec![
100788, 420, 1, 1, 1000, 173, 0, 1, 1000, 59957, 4, 1, 11183, 32, 201305, 8356, 4,
16000, 100, 16000, 100, 16000, 100, 16000, 100, 16000, 100, 16000, 100, 100, 100,
16000, 100, 94375, 32, 132994, 32, 61462, 4, 72010, 178, 0, 1, 22151, 32, 91189, 769,
4, 2, 85848, 123203, 7305, -900, 1716, 549, 57, 85848, 0, 1, 1, 1000, 42921, 4, 2,
24548, 29498, 38, 1, 898148, 27279, 1, 51775, 558, 1, 39184, 1000, 60594, 1, 141895,
32, 83150, 32, 15299, 32, 76049, 1, 13169, 4, 22100, 10, 28999, 74, 1, 28999, 74, 1,
43285, 552, 1, 44749, 541, 1, 33852, 32, 68246, 32, 72362, 32, 7243, 32, 7391, 32,
11546, 32, 85848, 123203, 7305, -900, 1716, 549, 57, 85848, 0, 1, 90434, 519, 0, 1,
74433, 32, 85848, 123203, 7305, -900, 1716, 549, 57, 85848, 0, 1, 1, 85848, 123203,
7305, -900, 1716, 549, 57, 85848, 0, 1, 955506, 213312, 0, 2, 270652, 22588, 4,
1457325, 64566, 4, 20467, 1, 4, 0, 141992, 32, 100788, 420, 1, 1, 81663, 32, 59498, 32,
20142, 32, 24588, 32, 20744, 32, 25933, 32, 24623, 32, 43053543, 10, 53384111, 14333,
10, 43574283, 26308, 10, 16000, 100, 16000, 100, 962335, 18, 2780678, 6, 442008, 1,
52538055, 3756, 18, 267929, 18, 76433006, 8868, 18, 52948122, 18, 1995836, 36, 3227919,
12, 901022, 1, 166917843, 4307, 36, 284546, 36, 158221314, 26549, 36, 74698472, 36,
333849714, 1, 254006273, 72, 2174038, 72, 2261318, 64571, 4, 207616, 8310, 4, 1293828,
28716, 63, 0, 1, 1006041, 43623, 251, 0, 1,
];
let cost_model = initialize_cost_model(&Language::PlutusV3, &costs);
assert_eq!(CostModel::v3(), cost_model);
}
}