@@ -945,18 +945,18 @@ fn events_cost_cairo_steps() {
945
945
let result = run_test_case ( & test, ForgeTrackedResource :: CairoSteps ) ;
946
946
947
947
assert_passed ( & result) ;
948
- // todo(3078): verify gas required be event keys and data
949
- // 156 range_check_builtin ~= 7
950
- // 6 gas for 50 event values
951
- // ~13 gas for 50 event keys
952
- // 0 l1_gas + 0 l1_data_gas + (7 + 6 + ~13 ) * (100 / 0.0025) l2 gas
948
+ // 105 range_check_builtin = 105 * 0.04 = 4.2 = ~5
949
+ // 19.2 gas for 50 events
950
+ // 12.8 = (10240 * 50) / 40000 ( gas from 50 event keys)
951
+ // 6.4 = (5120 * 50) / 40000 ( gas from 50 event data)
952
+ // 0 l1_gas + 0 l1_data_gas + (5 + 19.2 ) * (100 / 0.0025) l2 gas
953
953
assert_gas (
954
954
& result,
955
955
"events_cost" ,
956
956
GasVector {
957
957
l1_gas : GasAmount ( 0 ) ,
958
958
l1_data_gas : GasAmount ( 0 ) ,
959
- l2_gas : GasAmount ( 1_048_000 ) ,
959
+ l2_gas : GasAmount ( 968_000 ) ,
960
960
} ,
961
961
) ;
962
962
}
@@ -991,18 +991,19 @@ fn events_contract_cost_cairo_steps() {
991
991
992
992
let result = run_test_case ( & test, ForgeTrackedResource :: CairoSteps ) ;
993
993
assert_passed ( & result) ;
994
- // 4119 * 0.0025 = 10.2975 ~ 11 = gas cost of steps
994
+ // (3970 steps + 14 memory holes) * 0.0025 = 9.96 ~ 10 = gas cost of steps
995
995
// 96 = gas cost of onchain data (deploy cost)
996
- // 6 gas for 50 event values
997
- // ~13 gas for 50 event keys
998
- // 0 l1_gas + 96 l1_data_gas + (11 + 6 + ~13) * (100 / 0.0025) l2 gas
996
+ // 19.2 gas for 50 events
997
+ // 12.8 = (10240 * 50) / 40000 (gas from 50 event keys)
998
+ // 6.4 = (5120 * 50) / 40000 (gas from 50 event data)
999
+ // 0 l1_gas + 96 l1_data_gas + (10 + 19.2) * (100 / 0.0025) l2 gas
999
1000
assert_gas (
1000
1001
& result,
1001
1002
"event_emission_cost" ,
1002
1003
GasVector {
1003
1004
l1_gas : GasAmount ( 0 ) ,
1004
1005
l1_data_gas : GasAmount ( 96 ) ,
1005
- l2_gas : GasAmount ( 1_208_000 ) ,
1006
+ l2_gas : GasAmount ( 1_168_000 ) ,
1006
1007
} ,
1007
1008
) ;
1008
1009
}
@@ -1029,15 +1030,15 @@ fn declare_cost_is_omitted_sierra_gas() {
1029
1030
let result = run_test_case ( & test, ForgeTrackedResource :: SierraGas ) ;
1030
1031
1031
1032
assert_passed ( & result) ;
1032
- // 25800 = reported consumed sierra gas
1033
- // 0 l1_gas + 0 l1_data_gas + 25800 l2 gas
1033
+ // 18960 = reported consumed sierra gas
1034
+ // 0 l1_gas + 0 l1_data_gas + 18960 l2 gas
1034
1035
assert_gas (
1035
1036
& result,
1036
1037
"declare_cost_is_omitted" ,
1037
1038
GasVector {
1038
1039
l1_gas : GasAmount ( 0 ) ,
1039
1040
l1_data_gas : GasAmount ( 0 ) ,
1040
- l2_gas : GasAmount ( 25800 ) ,
1041
+ l2_gas : GasAmount ( 18960 ) ,
1041
1042
} ,
1042
1043
) ;
1043
1044
}
@@ -1077,15 +1078,15 @@ fn deploy_syscall_cost_sierra_gas() {
1077
1078
// -> 1 deploy syscall costs 1132 cairo steps, 7 pedersen and 18 range check builtins
1078
1079
// -> 1 calldata element costs 8 cairo steps and 1 pedersen
1079
1080
// -> 1 pedersen costs 4050, 1 range check costs 70
1080
- // 472004 = reported consumed sierra gas
1081
- // 0 l1_gas + 96 l1_data_gas + (20000 + 147660 + 472004 ) l2 gas
1081
+ // 444784 = reported consumed sierra gas
1082
+ // 0 l1_gas + 96 l1_data_gas + (20000 + 147660 + 444784 ) l2 gas
1082
1083
assert_gas (
1083
1084
& result,
1084
1085
"deploy_syscall_cost" ,
1085
1086
GasVector {
1086
1087
l1_gas : GasAmount ( 0 ) ,
1087
1088
l1_data_gas : GasAmount ( 96 ) ,
1088
- l2_gas : GasAmount ( 639_664 ) ,
1089
+ l2_gas : GasAmount ( 612_444 ) ,
1089
1090
} ,
1090
1091
) ;
1091
1092
}
@@ -1117,15 +1118,15 @@ fn snforge_std_deploy_cost_sierra_gas() {
1117
1118
// 96 = gas cost of onchain data (see `deploy_syscall_cost_sierra_gas` test)
1118
1119
// 20000 = cost of 2 keccak syscall (see `deploy_syscall_cost_sierra_gas` test)
1119
1120
// 147660 = cost of 1 deploy syscall (see `deploy_syscall_cost_sierra_gas` test)
1120
- // 491944 = reported consumed sierra gas
1121
- // 0 l1_gas + 96 l1_data_gas + (20000 + 147660 + 491944 ) l2 gas
1121
+ // 459154 = reported consumed sierra gas
1122
+ // 0 l1_gas + 96 l1_data_gas + (20000 + 147660 + 459154 ) l2 gas
1122
1123
assert_gas (
1123
1124
& result,
1124
1125
"deploy_cost" ,
1125
1126
GasVector {
1126
1127
l1_gas : GasAmount ( 0 ) ,
1127
1128
l1_data_gas : GasAmount ( 96 ) ,
1128
- l2_gas : GasAmount ( 659_604 ) ,
1129
+ l2_gas : GasAmount ( 626_814 ) ,
1129
1130
} ,
1130
1131
) ;
1131
1132
}
@@ -1146,15 +1147,15 @@ fn keccak_cost_sierra_gas() {
1146
1147
assert_passed ( & result) ;
1147
1148
// 10000 = cost of 1 keccak syscall (1 * 100 * 100)
1148
1149
// -> 1 keccak syscall costs 100 cairo steps
1149
- // 58550 = reported consumed sierra gas
1150
- // 0 l1_gas + 0 l1_data_gas + (10000 + 58550 ) l2 gas
1150
+ // 44290 = reported consumed sierra gas
1151
+ // 0 l1_gas + 0 l1_data_gas + (10000 + 44290 ) l2 gas
1151
1152
assert_gas (
1152
1153
& result,
1153
1154
"keccak_cost" ,
1154
1155
GasVector {
1155
1156
l1_gas : GasAmount ( 0 ) ,
1156
1157
l1_data_gas : GasAmount ( 0 ) ,
1157
- l2_gas : GasAmount ( 68550 ) ,
1158
+ l2_gas : GasAmount ( 54290 ) ,
1158
1159
} ,
1159
1160
) ;
1160
1161
}
@@ -1195,15 +1196,15 @@ fn contract_keccak_cost_sierra_gas() {
1195
1196
// 87650 = cost of 1 call contract syscall (because 1 * 866 * 100 + 15 * 70)
1196
1197
// -> 1 call contract syscall costs 866 cairo steps and 15 range check builtins
1197
1198
// -> 1 range check costs 70
1198
- // 1160975 = reported consumed sierra gas
1199
- // 0 l1_gas + 96 l1_data_gas + (142810 + 50000 + 87650 + 1160975 ) l2 gas
1199
+ // 1101015 = reported consumed sierra gas
1200
+ // 0 l1_gas + 96 l1_data_gas + (142810 + 50000 + 87650 + 1101015 ) l2 gas
1200
1201
assert_gas (
1201
1202
& result,
1202
1203
"contract_keccak_cost" ,
1203
1204
GasVector {
1204
1205
l1_gas : GasAmount ( 0 ) ,
1205
1206
l1_data_gas : GasAmount ( 96 ) ,
1206
- l2_gas : GasAmount ( 1_441_435 ) ,
1207
+ l2_gas : GasAmount ( 1_381_475 ) ,
1207
1208
} ,
1208
1209
) ;
1209
1210
}
@@ -1240,15 +1241,15 @@ fn contract_range_check_cost_sierra_gas() {
1240
1241
// 96 = gas cost of onchain data (see `deploy_syscall_cost_sierra_gas` test)
1241
1242
// 142810 = cost of 1 deploy syscall (see `deploy_syscall_cost_sierra_gas` test)
1242
1243
// 87650 = cost of 1 call contract syscall (see `contract_keccak_cost_sierra_gas` test)
1243
- // 132010 = reported consumed sierra gas
1244
- // 0 l1_gas + 96 l1_data_gas + (142810 + 87650 + 132010 ) l2 gas
1244
+ // 110400 = reported consumed sierra gas
1245
+ // 0 l1_gas + 96 l1_data_gas + (142810 + 87650 + 110400 ) l2 gas
1245
1246
assert_gas (
1246
1247
& result,
1247
1248
"contract_range_check_cost" ,
1248
1249
GasVector {
1249
1250
l1_gas : GasAmount ( 0 ) ,
1250
1251
l1_data_gas : GasAmount ( 96 ) ,
1251
- l2_gas : GasAmount ( 362_470 ) ,
1252
+ l2_gas : GasAmount ( 340_860 ) ,
1252
1253
} ,
1253
1254
) ;
1254
1255
}
@@ -1291,15 +1292,15 @@ fn storage_write_cost_sierra_gas() {
1291
1292
// -> 1 storage write syscall costs 93 cairo steps and 1 range check builtin
1292
1293
// -> 1 range check costs 70
1293
1294
// -> the minimum total cost is `syscall_base_gas_cost`, which is pre-charged by the compiler (atm it is 100 * 100)
1294
- // 54350 = reported consumed sierra gas
1295
- // 0 l1_gas + (96 + 64 + 32) l1_data_gas + (142810 + 87650 + 10000 + 54350 ) l2 gas
1295
+ // 41340 = reported consumed sierra gas
1296
+ // 0 l1_gas + (96 + 64 + 32) l1_data_gas + (142810 + 87650 + 10000 + 41340 ) l2 gas
1296
1297
assert_gas (
1297
1298
& result,
1298
1299
"storage_write_cost" ,
1299
1300
GasVector {
1300
1301
l1_gas : GasAmount ( 0 ) ,
1301
1302
l1_data_gas : GasAmount ( 192 ) ,
1302
- l2_gas : GasAmount ( 294_810 ) ,
1303
+ l2_gas : GasAmount ( 281_800 ) ,
1303
1304
} ,
1304
1305
) ;
1305
1306
}
@@ -1349,15 +1350,15 @@ fn multiple_storage_writes_cost_sierra_gas() {
1349
1350
// -> 1 storage write syscall costs 93 cairo steps and 1 range check builtin
1350
1351
// -> 1 range check costs 70
1351
1352
// -> the minimum total cost is `syscall_base_gas_cost`, which is pre-charged by the compiler (atm it is 100 * 100)
1352
- // 61830 = reported consumed sierra gas
1353
- // 0 l1_gas + (64 + 64 + 32 + 32) l1_data_gas + (142810 + 175300 + 20000 + 61830 ) l2 gas
1353
+ // 47420 = reported consumed sierra gas
1354
+ // 0 l1_gas + (64 + 64 + 32 + 32) l1_data_gas + (142810 + 175300 + 20000 + 47420 ) l2 gas
1354
1355
assert_gas (
1355
1356
& result,
1356
1357
"multiple_storage_writes_cost" ,
1357
1358
GasVector {
1358
1359
l1_gas : GasAmount ( 0 ) ,
1359
1360
l1_data_gas : GasAmount ( 192 ) ,
1360
- l2_gas : GasAmount ( 399_940 ) ,
1361
+ l2_gas : GasAmount ( 385_530 ) ,
1361
1362
} ,
1362
1363
) ;
1363
1364
}
@@ -1399,15 +1400,15 @@ fn l1_message_cost_sierra_gas() {
1399
1400
// 14170 = cost of 1 SendMessageToL1 syscall (because 1 * 141 * 100 + 1 * 70 )
1400
1401
// -> 1 storage write syscall costs 141 cairo steps and 1 range check builtin
1401
1402
// -> 1 range check costs 70
1402
- // 52910 = reported consumed sierra gas
1403
- // 29524 l1_gas + 96 l1_data_gas + (142810 + 87650 + 14170 + 52910 ) l2 gas
1403
+ // 40700 = reported consumed sierra gas
1404
+ // 29524 l1_gas + 96 l1_data_gas + (142810 + 87650 + 14170 + 40700 ) l2 gas
1404
1405
assert_gas (
1405
1406
& result,
1406
1407
"l1_message_cost" ,
1407
1408
GasVector {
1408
1409
l1_gas : GasAmount ( 29524 ) ,
1409
1410
l1_data_gas : GasAmount ( 96 ) ,
1410
- l2_gas : GasAmount ( 297_540 ) ,
1411
+ l2_gas : GasAmount ( 285_330 ) ,
1411
1412
} ,
1412
1413
) ;
1413
1414
}
@@ -1463,15 +1464,15 @@ fn l1_message_cost_for_proxy_sierra_gas() {
1463
1464
// -> 1 pedersen costs 4050, 1 range check costs 70
1464
1465
// 175300 = cost of 2 call contract syscalls (see `multiple_storage_writes_cost_sierra_gas` test)
1465
1466
// 14170 = cost of 1 SendMessageToL1 syscall (see `l1_message_cost_sierra_gas` test)
1466
- // 115760 = reported consumed sierra gas
1467
- // 29524 l1_gas + (128 + 64) l1_data_gas + (285620 + 175300 + 14170 + 115760 ) l2 gas
1467
+ // 91810 = reported consumed sierra gas
1468
+ // 29524 l1_gas + (128 + 64) l1_data_gas + (285620 + 175300 + 14170 + 91810 ) l2 gas
1468
1469
assert_gas (
1469
1470
& result,
1470
1471
"l1_message_cost_for_proxy" ,
1471
1472
GasVector {
1472
1473
l1_gas : GasAmount ( 29524 ) ,
1473
1474
l1_data_gas : GasAmount ( 192 ) ,
1474
- l2_gas : GasAmount ( 590_850 ) ,
1475
+ l2_gas : GasAmount ( 566_900 ) ,
1475
1476
} ,
1476
1477
) ;
1477
1478
}
@@ -1509,15 +1510,15 @@ fn events_cost_sierra_gas() {
1509
1510
// -> 1 emit event syscall costs 61 cairo steps and 1 range check builtin
1510
1511
// -> 1 range check costs 70
1511
1512
// -> the minimum total cost is `syscall_base_gas_cost`, which is pre-charged by the compiler (atm it is 100 * 100)
1512
- // 188920 = reported consumed sierra gas
1513
- // 0 l1_gas + 0 l1_data_gas + (512000 + 256000 + 10000 + 188920 ) l2 gas
1513
+ // 166580 = reported consumed sierra gas
1514
+ // 0 l1_gas + 0 l1_data_gas + (512000 + 256000 + 10000 + 166580 ) l2 gas
1514
1515
assert_gas (
1515
1516
& result,
1516
1517
"events_cost" ,
1517
1518
GasVector {
1518
1519
l1_gas : GasAmount ( 0 ) ,
1519
1520
l1_data_gas : GasAmount ( 0 ) ,
1520
- l2_gas : GasAmount ( 966_920 ) ,
1521
+ l2_gas : GasAmount ( 944_580 ) ,
1521
1522
} ,
1522
1523
) ;
1523
1524
}
@@ -1555,15 +1556,15 @@ fn events_contract_cost_sierra_gas() {
1555
1556
// 10000 = cost of 1 emit event syscall (see `events_contract_cost_sierra_gas` test)
1556
1557
// 142810 = cost of 1 deploy syscall (see `deploy_syscall_cost_sierra_gas` test)
1557
1558
// 87650 = cost of 1 call contract syscall (see `contract_keccak_cost_sierra_gas` test)
1558
- // 232590 = reported consumed sierra gas
1559
- // 0 l1_gas + 96 l1_data_gas + (512000 + 256000 + 10000 + 142810 + 87650 + 232590 ) l2 gas
1559
+ // 201080 = reported consumed sierra gas
1560
+ // 0 l1_gas + 96 l1_data_gas + (512000 + 256000 + 10000 + 142810 + 87650 + 201080 ) l2 gas
1560
1561
assert_gas (
1561
1562
& result,
1562
1563
"event_emission_cost" ,
1563
1564
GasVector {
1564
1565
l1_gas : GasAmount ( 0 ) ,
1565
1566
l1_data_gas : GasAmount ( 96 ) ,
1566
- l2_gas : GasAmount ( 1_241_050 ) ,
1567
+ l2_gas : GasAmount ( 1_209_540 ) ,
1567
1568
} ,
1568
1569
) ;
1569
1570
}
0 commit comments