@@ -1087,6 +1087,384 @@ impl BuiltinCosts {
10871087 }
10881088 }
10891089
1090+ pub fn v2 ( ) -> Self {
1091+ Self {
1092+ add_integer : TwoArgumentsCosting :: new (
1093+ TwoArgumentsCosting :: max_size ( 1 , 1 ) ,
1094+ TwoArgumentsCosting :: max_size ( 100788 , 420 ) ,
1095+ ) ,
1096+ subtract_integer : TwoArgumentsCosting :: new (
1097+ TwoArgumentsCosting :: max_size ( 1 , 1 ) ,
1098+ TwoArgumentsCosting :: max_size ( 100788 , 420 ) ,
1099+ ) ,
1100+ multiply_integer : TwoArgumentsCosting :: new (
1101+ TwoArgumentsCosting :: added_sizes ( 0 , 1 ) ,
1102+ TwoArgumentsCosting :: multiplied_sizes ( 90434 , 519 ) ,
1103+ ) ,
1104+ divide_integer : TwoArgumentsCosting :: new (
1105+ TwoArgumentsCosting :: subtracted_sizes ( 0 , 1 , 1 ) ,
1106+ TwoArgumentsCosting :: const_above_diagonal_into_multiplied_sizes ( 85848 , 228465 , 122 ) ,
1107+ ) ,
1108+ quotient_integer : TwoArgumentsCosting :: new (
1109+ TwoArgumentsCosting :: subtracted_sizes ( 0 , 1 , 1 ) ,
1110+ TwoArgumentsCosting :: const_above_diagonal_into_multiplied_sizes (
1111+ 85848 , 228465 , 122
1112+ ) ,
1113+ ) ,
1114+ remainder_integer : TwoArgumentsCosting :: new (
1115+ TwoArgumentsCosting :: subtracted_sizes ( 0 , 1 , 1 ) ,
1116+ TwoArgumentsCosting :: const_above_diagonal_into_multiplied_sizes (
1117+ 85848 , 228465 , 122 ,
1118+ ) ,
1119+ ) ,
1120+ mod_integer : TwoArgumentsCosting :: new (
1121+ TwoArgumentsCosting :: subtracted_sizes ( 0 , 1 , 1 ) ,
1122+ TwoArgumentsCosting :: const_above_diagonal_into_multiplied_sizes ( 85848 , 228465 , 122 ) ,
1123+ ) ,
1124+ equals_integer : TwoArgumentsCosting :: new (
1125+ TwoArgumentsCosting :: constant_cost ( 1 ) ,
1126+ TwoArgumentsCosting :: min_size ( 51775 , 558 ) ,
1127+ ) ,
1128+ less_than_integer : TwoArgumentsCosting :: new (
1129+ TwoArgumentsCosting :: constant_cost ( 1 ) ,
1130+ TwoArgumentsCosting :: min_size ( 44749 , 541 ) ,
1131+ ) ,
1132+ less_than_equals_integer : TwoArgumentsCosting :: new (
1133+ TwoArgumentsCosting :: constant_cost ( 1 ) ,
1134+ TwoArgumentsCosting :: min_size ( 43285 , 552 ) ,
1135+ ) ,
1136+ append_byte_string : TwoArgumentsCosting :: new (
1137+ TwoArgumentsCosting :: added_sizes ( 0 , 1 ) ,
1138+ TwoArgumentsCosting :: added_sizes ( 1000 , 173 ) ,
1139+ ) ,
1140+ cons_byte_string : TwoArgumentsCosting :: new (
1141+ TwoArgumentsCosting :: added_sizes ( 0 , 1 ) ,
1142+ TwoArgumentsCosting :: linear_in_y ( 72010 , 178 ) ,
1143+ ) ,
1144+ slice_byte_string : ThreeArgumentsCosting :: new (
1145+ ThreeArgumentsCosting :: linear_in_z ( 4 , 0 ) ,
1146+ ThreeArgumentsCosting :: linear_in_z ( 20467 , 1 ) ,
1147+ ) ,
1148+ length_of_byte_string : OneArgumentCosting :: new (
1149+ OneArgumentCosting :: constant_cost ( 10 ) ,
1150+ OneArgumentCosting :: constant_cost ( 22100 ) ,
1151+ ) ,
1152+ index_byte_string : TwoArgumentsCosting :: new (
1153+ TwoArgumentsCosting :: constant_cost ( 4 ) ,
1154+ TwoArgumentsCosting :: constant_cost ( 13169 ) ,
1155+ ) ,
1156+ equals_byte_string : TwoArgumentsCosting :: new (
1157+ TwoArgumentsCosting :: constant_cost ( 1 ) ,
1158+ TwoArgumentsCosting :: linear_on_diagonal ( 24548 , 29498 , 38 ) ,
1159+ ) ,
1160+ less_than_byte_string : TwoArgumentsCosting :: new (
1161+ TwoArgumentsCosting :: constant_cost ( 1 ) ,
1162+ TwoArgumentsCosting :: min_size ( 28999 , 74 ) ,
1163+ ) ,
1164+ less_than_equals_byte_string : TwoArgumentsCosting :: new (
1165+ TwoArgumentsCosting :: constant_cost ( 1 ) ,
1166+ TwoArgumentsCosting :: min_size ( 28999 , 74 ) ,
1167+ ) ,
1168+ sha2_256 : OneArgumentCosting :: new (
1169+ OneArgumentCosting :: constant_cost ( 4 ) ,
1170+ OneArgumentCosting :: linear_cost ( 270652 , 22588 ) ,
1171+ ) ,
1172+ sha3_256 : OneArgumentCosting :: new (
1173+ OneArgumentCosting :: constant_cost ( 4 ) ,
1174+ OneArgumentCosting :: linear_cost ( 1457325 , 64566 ) ,
1175+ ) ,
1176+ blake2b_256 : OneArgumentCosting :: new (
1177+ OneArgumentCosting :: constant_cost ( 4 ) ,
1178+ OneArgumentCosting :: linear_cost ( 201305 , 8356 ) ,
1179+ ) ,
1180+ verify_ed25519_signature : ThreeArgumentsCosting :: new (
1181+ ThreeArgumentsCosting :: constant_cost ( 10 ) ,
1182+ ThreeArgumentsCosting :: linear_in_y ( 53384111 , 14333 ) ,
1183+ ) ,
1184+ verify_ecdsa_secp256k1_signature : ThreeArgumentsCosting :: new (
1185+ ThreeArgumentsCosting :: constant_cost ( 10 ) ,
1186+ ThreeArgumentsCosting :: constant_cost ( 43053543 ) ,
1187+ ) ,
1188+ verify_schnorr_secp256k1_signature : ThreeArgumentsCosting :: new (
1189+ ThreeArgumentsCosting :: constant_cost ( 10 ) ,
1190+ ThreeArgumentsCosting :: linear_in_y ( 43574283 , 26308 ) ,
1191+ ) ,
1192+ append_string : TwoArgumentsCosting :: new (
1193+ TwoArgumentsCosting :: added_sizes ( 4 , 1 ) ,
1194+ TwoArgumentsCosting :: added_sizes ( 1000 , 59957 ) ,
1195+ ) ,
1196+ equals_string : TwoArgumentsCosting :: new (
1197+ TwoArgumentsCosting :: constant_cost ( 1 ) ,
1198+ TwoArgumentsCosting :: linear_on_diagonal ( 39184 , 1000 , 60594 ) ,
1199+ ) ,
1200+ encode_utf8 : OneArgumentCosting :: new (
1201+ OneArgumentCosting :: linear_cost ( 4 , 2 ) ,
1202+ OneArgumentCosting :: linear_cost ( 1000 , 42921 ) ,
1203+ ) ,
1204+ decode_utf8 : OneArgumentCosting :: new (
1205+ OneArgumentCosting :: linear_cost ( 4 , 2 ) ,
1206+ OneArgumentCosting :: linear_cost ( 91189 , 769 ) ,
1207+ ) ,
1208+ if_then_else : ThreeArgumentsCosting :: new (
1209+ ThreeArgumentsCosting :: constant_cost ( 1 ) ,
1210+ ThreeArgumentsCosting :: constant_cost ( 76049 ) ,
1211+ ) ,
1212+ choose_unit : TwoArgumentsCosting :: new (
1213+ TwoArgumentsCosting :: constant_cost ( 4 ) ,
1214+ TwoArgumentsCosting :: constant_cost ( 61462 ) ,
1215+ ) ,
1216+ trace : TwoArgumentsCosting :: new (
1217+ TwoArgumentsCosting :: constant_cost ( 32 ) ,
1218+ TwoArgumentsCosting :: constant_cost ( 59498 ) ,
1219+ ) ,
1220+ fst_pair : OneArgumentCosting :: new (
1221+ OneArgumentCosting :: constant_cost ( 32 ) ,
1222+ OneArgumentCosting :: constant_cost ( 141895 ) ,
1223+ ) ,
1224+ snd_pair : OneArgumentCosting :: new (
1225+ OneArgumentCosting :: constant_cost ( 32 ) ,
1226+ OneArgumentCosting :: constant_cost ( 141992 ) ,
1227+ ) ,
1228+ choose_list : ThreeArgumentsCosting :: new (
1229+ ThreeArgumentsCosting :: constant_cost ( 32 ) ,
1230+ ThreeArgumentsCosting :: constant_cost ( 132994 ) ,
1231+ ) ,
1232+ mk_cons : TwoArgumentsCosting :: new (
1233+ TwoArgumentsCosting :: constant_cost ( 32 ) ,
1234+ TwoArgumentsCosting :: constant_cost ( 72362 ) ,
1235+ ) ,
1236+ head_list : OneArgumentCosting :: new (
1237+ OneArgumentCosting :: constant_cost ( 32 ) ,
1238+ OneArgumentCosting :: constant_cost ( 83150 ) ,
1239+ ) ,
1240+ tail_list : OneArgumentCosting :: new (
1241+ OneArgumentCosting :: constant_cost ( 32 ) ,
1242+ OneArgumentCosting :: constant_cost ( 81663 ) ,
1243+ ) ,
1244+ null_list : OneArgumentCosting :: new (
1245+ OneArgumentCosting :: constant_cost ( 32 ) ,
1246+ OneArgumentCosting :: constant_cost ( 74433 ) ,
1247+ ) ,
1248+ choose_data : SixArgumentsCosting :: new (
1249+ SixArgumentsCosting :: constant_cost ( 32 ) ,
1250+ SixArgumentsCosting :: constant_cost ( 94375 ) ,
1251+ ) ,
1252+ constr_data : TwoArgumentsCosting :: new (
1253+ TwoArgumentsCosting :: constant_cost ( 32 ) ,
1254+ TwoArgumentsCosting :: constant_cost ( 22151 ) ,
1255+ ) ,
1256+ map_data : OneArgumentCosting :: new (
1257+ OneArgumentCosting :: constant_cost ( 32 ) ,
1258+ OneArgumentCosting :: constant_cost ( 68246 ) ,
1259+ ) ,
1260+ list_data : OneArgumentCosting :: new (
1261+ OneArgumentCosting :: constant_cost ( 32 ) ,
1262+ OneArgumentCosting :: constant_cost ( 33852 ) ,
1263+ ) ,
1264+ i_data : OneArgumentCosting :: new (
1265+ OneArgumentCosting :: constant_cost ( 32 ) ,
1266+ OneArgumentCosting :: constant_cost ( 15299 ) ,
1267+ ) ,
1268+ b_data : OneArgumentCosting :: new (
1269+ OneArgumentCosting :: constant_cost ( 32 ) ,
1270+ OneArgumentCosting :: constant_cost ( 11183 ) ,
1271+ ) ,
1272+ un_constr_data : OneArgumentCosting :: new (
1273+ OneArgumentCosting :: constant_cost ( 32 ) ,
1274+ OneArgumentCosting :: constant_cost ( 24588 ) ,
1275+ ) ,
1276+ un_map_data : OneArgumentCosting :: new (
1277+ OneArgumentCosting :: constant_cost ( 32 ) ,
1278+ OneArgumentCosting :: constant_cost ( 24623 ) ,
1279+ ) ,
1280+ un_list_data : OneArgumentCosting :: new (
1281+ OneArgumentCosting :: constant_cost ( 32 ) ,
1282+ OneArgumentCosting :: constant_cost ( 25933 ) ,
1283+ ) ,
1284+ un_i_data : OneArgumentCosting :: new (
1285+ OneArgumentCosting :: constant_cost ( 32 ) ,
1286+ OneArgumentCosting :: constant_cost ( 20744 ) ,
1287+ ) ,
1288+ un_b_data : OneArgumentCosting :: new (
1289+ OneArgumentCosting :: constant_cost ( 32 ) ,
1290+ OneArgumentCosting :: constant_cost ( 20142 ) ,
1291+ ) ,
1292+ equals_data : TwoArgumentsCosting :: new (
1293+ TwoArgumentsCosting :: constant_cost ( 1 ) ,
1294+ TwoArgumentsCosting :: min_size ( 898148 , 27279 ) ,
1295+ ) ,
1296+ mk_pair_data : TwoArgumentsCosting :: new (
1297+ TwoArgumentsCosting :: constant_cost ( 32 ) ,
1298+ TwoArgumentsCosting :: constant_cost ( 11546 ) ,
1299+ ) ,
1300+ mk_nil_data : OneArgumentCosting :: new (
1301+ OneArgumentCosting :: constant_cost ( 32 ) ,
1302+ OneArgumentCosting :: constant_cost ( 7243 ) ,
1303+ ) ,
1304+ mk_nil_pair_data : OneArgumentCosting :: new (
1305+ OneArgumentCosting :: constant_cost ( 32 ) ,
1306+ OneArgumentCosting :: constant_cost ( 7391 ) ,
1307+ ) ,
1308+
1309+ serialise_data : OneArgumentCosting :: new (
1310+ OneArgumentCosting :: linear_cost ( 0 , 2 ) ,
1311+ OneArgumentCosting :: linear_cost ( 955506 , 213312 ) ,
1312+ ) ,
1313+ blake2b_224 : OneArgumentCosting :: new (
1314+ OneArgumentCosting :: constant_cost ( 4 ) ,
1315+ OneArgumentCosting :: linear_cost ( 207616 , 8310 ) ,
1316+ ) ,
1317+ keccak_256 : OneArgumentCosting :: new (
1318+ OneArgumentCosting :: constant_cost ( 4 ) ,
1319+ OneArgumentCosting :: linear_cost ( 2261318 , 64571 ) ,
1320+ ) ,
1321+ bls12_381_g1_add : TwoArgumentsCosting :: new (
1322+ TwoArgumentsCosting :: constant_cost ( 18 ) ,
1323+ TwoArgumentsCosting :: constant_cost ( 962335 ) ,
1324+ ) ,
1325+ bls12_381_g1_neg : OneArgumentCosting :: new (
1326+ OneArgumentCosting :: constant_cost ( 18 ) ,
1327+ OneArgumentCosting :: constant_cost ( 267929 ) ,
1328+ ) ,
1329+ bls12_381_g1_scalar_mul : TwoArgumentsCosting :: new (
1330+ TwoArgumentsCosting :: constant_cost ( 18 ) ,
1331+ TwoArgumentsCosting :: linear_in_x ( 76433006 , 8868 ) ,
1332+ ) ,
1333+ bls12_381_g1_equal : TwoArgumentsCosting :: new (
1334+ TwoArgumentsCosting :: constant_cost ( 1 ) ,
1335+ TwoArgumentsCosting :: constant_cost ( 442008 ) ,
1336+ ) ,
1337+ bls12_381_g1_compress : OneArgumentCosting :: new (
1338+ OneArgumentCosting :: constant_cost ( 6 ) ,
1339+ OneArgumentCosting :: constant_cost ( 2780678 ) ,
1340+ ) ,
1341+ bls12_381_g1_uncompress : OneArgumentCosting :: new (
1342+ OneArgumentCosting :: constant_cost ( 18 ) ,
1343+ OneArgumentCosting :: constant_cost ( 52948122 ) ,
1344+ ) ,
1345+ bls12_381_g1_hash_to_group : TwoArgumentsCosting :: new (
1346+ TwoArgumentsCosting :: constant_cost ( 18 ) ,
1347+ TwoArgumentsCosting :: linear_in_x ( 52538055 , 3756 ) ,
1348+ ) ,
1349+ bls12_381_g2_add : TwoArgumentsCosting :: new (
1350+ TwoArgumentsCosting :: constant_cost ( 36 ) ,
1351+ TwoArgumentsCosting :: constant_cost ( 1995836 ) ,
1352+ ) ,
1353+ bls12_381_g2_neg : OneArgumentCosting :: new (
1354+ OneArgumentCosting :: constant_cost ( 36 ) ,
1355+ OneArgumentCosting :: constant_cost ( 284546 ) ,
1356+ ) ,
1357+ bls12_381_g2_scalar_mul : TwoArgumentsCosting :: new (
1358+ TwoArgumentsCosting :: constant_cost ( 36 ) ,
1359+ TwoArgumentsCosting :: linear_in_x ( 158_221_314 , 26_549 ) ,
1360+ ) ,
1361+ bls12_381_g2_equal : TwoArgumentsCosting :: new (
1362+ TwoArgumentsCosting :: constant_cost ( 1 ) ,
1363+ TwoArgumentsCosting :: constant_cost ( 901_022 ) ,
1364+ ) ,
1365+ bls12_381_g2_compress : OneArgumentCosting :: new (
1366+ OneArgumentCosting :: constant_cost ( 12 ) ,
1367+ OneArgumentCosting :: constant_cost ( 3_227_919 ) ,
1368+ ) ,
1369+ bls12_381_g2_uncompress : OneArgumentCosting :: new (
1370+ OneArgumentCosting :: constant_cost ( 36 ) ,
1371+ OneArgumentCosting :: constant_cost ( 74_698_472 ) ,
1372+ ) ,
1373+ bls12_381_g2_hash_to_group : TwoArgumentsCosting :: new (
1374+ TwoArgumentsCosting :: constant_cost ( 36 ) ,
1375+ TwoArgumentsCosting :: linear_in_x ( 166_917_843 , 4_307 ) ,
1376+ ) ,
1377+ bls12_381_miller_loop : TwoArgumentsCosting :: new (
1378+ TwoArgumentsCosting :: constant_cost ( 72 ) ,
1379+ TwoArgumentsCosting :: constant_cost ( 254006273 ) ,
1380+ ) ,
1381+ bls12_381_mul_ml_result : TwoArgumentsCosting :: new (
1382+ TwoArgumentsCosting :: constant_cost ( 72 ) ,
1383+ TwoArgumentsCosting :: constant_cost ( 2174038 ) ,
1384+ ) ,
1385+ bls12_381_final_verify : TwoArgumentsCosting :: new (
1386+ TwoArgumentsCosting :: constant_cost ( 1 ) ,
1387+ TwoArgumentsCosting :: constant_cost ( 333849714 ) ,
1388+ ) ,
1389+ integer_to_byte_string : ThreeArgumentsCosting :: new (
1390+ ThreeArgumentsCosting :: literal_in_y_or_linear_in_z ( 0 , 1 ) ,
1391+ ThreeArgumentsCosting :: quadratic_in_z ( 1293828 , 28716 , 63 ) ,
1392+ ) ,
1393+ byte_string_to_integer : TwoArgumentsCosting :: new (
1394+ TwoArgumentsCosting :: linear_in_y ( 0 , 1 ) ,
1395+ TwoArgumentsCosting :: quadratic_in_y ( 1006041 , 43623 , 251 ) ,
1396+ ) ,
1397+ and_byte_string : ThreeArgumentsCosting :: new (
1398+ ThreeArgumentsCosting :: linear_in_max_y_z ( 0 , 1 ) ,
1399+ ThreeArgumentsCosting :: linear_in_y_and_z ( 100181 , 726 , 719 ) ,
1400+ ) ,
1401+ or_byte_string : ThreeArgumentsCosting :: new (
1402+ ThreeArgumentsCosting :: linear_in_max_y_z ( 0 , 1 ) ,
1403+ ThreeArgumentsCosting :: linear_in_y_and_z ( 100181 , 726 , 719 ) ,
1404+ ) ,
1405+ xor_byte_string : ThreeArgumentsCosting :: new (
1406+ ThreeArgumentsCosting :: linear_in_max_y_z ( 0 , 1 ) ,
1407+ ThreeArgumentsCosting :: linear_in_y_and_z ( 100181 , 726 , 719 ) ,
1408+ ) ,
1409+ complement_byte_string : OneArgumentCosting :: new (
1410+ OneArgumentCosting :: linear_cost ( 0 , 1 ) ,
1411+ OneArgumentCosting :: linear_cost ( 107878 , 680 ) ,
1412+ ) ,
1413+ read_bit : TwoArgumentsCosting :: new (
1414+ TwoArgumentsCosting :: constant_cost ( 1 ) ,
1415+ TwoArgumentsCosting :: constant_cost ( 95336 ) ,
1416+ ) ,
1417+ write_bits : ThreeArgumentsCosting :: new (
1418+ ThreeArgumentsCosting :: linear_in_x ( 0 , 1 ) ,
1419+ ThreeArgumentsCosting :: linear_in_y ( 281145 , 18848 ) ,
1420+ ) ,
1421+ replicate_byte : TwoArgumentsCosting :: new (
1422+ TwoArgumentsCosting :: linear_in_x ( 1 , 1 ) ,
1423+ TwoArgumentsCosting :: linear_in_x ( 180194 , 159 ) ,
1424+ ) ,
1425+ shift_byte_string : TwoArgumentsCosting :: new (
1426+ TwoArgumentsCosting :: linear_in_x ( 0 , 1 ) ,
1427+ TwoArgumentsCosting :: linear_in_x ( 158519 , 8942 ) ,
1428+ ) ,
1429+ rotate_byte_string : TwoArgumentsCosting :: new (
1430+ TwoArgumentsCosting :: linear_in_x ( 0 , 1 ) ,
1431+ TwoArgumentsCosting :: linear_in_x ( 159378 , 8813 ) ,
1432+ ) ,
1433+ count_set_bits : OneArgumentCosting :: new (
1434+ OneArgumentCosting :: constant_cost ( 1 ) ,
1435+ OneArgumentCosting :: linear_cost ( 107490 , 3298 ) ,
1436+ ) ,
1437+ find_first_set_bit : OneArgumentCosting :: new (
1438+ OneArgumentCosting :: constant_cost ( 1 ) ,
1439+ OneArgumentCosting :: linear_cost ( 106057 , 655 ) ,
1440+ ) ,
1441+ ripemd_160 : OneArgumentCosting :: new (
1442+ OneArgumentCosting :: constant_cost ( 3 ) ,
1443+ OneArgumentCosting :: linear_cost ( 1964219 , 24520 ) ,
1444+ ) ,
1445+ exp_mod_integer : ThreeArgumentsCosting :: new (
1446+ ThreeArgumentsCosting :: linear_in_z ( 0 , 1 ) ,
1447+ ThreeArgumentsCosting :: exp_mod_cost ( 607153 , 231697 , 53144 ) ,
1448+ ) ,
1449+ drop_list : TwoArgumentsCosting :: new (
1450+ TwoArgumentsCosting :: constant_cost ( 4 ) ,
1451+ TwoArgumentsCosting :: linear_in_x ( 116711 , 1957 ) ,
1452+ ) ,
1453+ length_of_array : OneArgumentCosting :: new (
1454+ OneArgumentCosting :: constant_cost ( 10 ) ,
1455+ OneArgumentCosting :: constant_cost ( 198994 ) ,
1456+ ) ,
1457+ list_to_array : TwoArgumentsCosting :: new (
1458+ TwoArgumentsCosting :: linear_in_x ( 7 , 1 ) ,
1459+ TwoArgumentsCosting :: linear_in_x ( 307802 , 8496 ) ,
1460+ ) ,
1461+ index_array : TwoArgumentsCosting :: new (
1462+ TwoArgumentsCosting :: constant_cost ( 32 ) ,
1463+ TwoArgumentsCosting :: constant_cost ( 194922 ) ,
1464+ ) ,
1465+ }
1466+ }
1467+
10901468 pub fn v3 ( ) -> Self {
10911469 Self {
10921470 add_integer : TwoArgumentsCosting :: new (
0 commit comments