Skip to content

Commit 75c18b8

Browse files
committed
Fix gas tests
commit-id:5e47ad12
1 parent 74a169a commit 75c18b8

File tree

1 file changed

+48
-47
lines changed
  • crates/forge/tests/integration

1 file changed

+48
-47
lines changed

crates/forge/tests/integration/gas.rs

Lines changed: 48 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -945,18 +945,18 @@ fn events_cost_cairo_steps() {
945945
let result = run_test_case(&test, ForgeTrackedResource::CairoSteps);
946946

947947
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
953953
assert_gas(
954954
&result,
955955
"events_cost",
956956
GasVector {
957957
l1_gas: GasAmount(0),
958958
l1_data_gas: GasAmount(0),
959-
l2_gas: GasAmount(1_048_000),
959+
l2_gas: GasAmount(968_000),
960960
},
961961
);
962962
}
@@ -991,18 +991,19 @@ fn events_contract_cost_cairo_steps() {
991991

992992
let result = run_test_case(&test, ForgeTrackedResource::CairoSteps);
993993
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
995995
// 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
9991000
assert_gas(
10001001
&result,
10011002
"event_emission_cost",
10021003
GasVector {
10031004
l1_gas: GasAmount(0),
10041005
l1_data_gas: GasAmount(96),
1005-
l2_gas: GasAmount(1_208_000),
1006+
l2_gas: GasAmount(1_168_000),
10061007
},
10071008
);
10081009
}
@@ -1029,15 +1030,15 @@ fn declare_cost_is_omitted_sierra_gas() {
10291030
let result = run_test_case(&test, ForgeTrackedResource::SierraGas);
10301031

10311032
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
10341035
assert_gas(
10351036
&result,
10361037
"declare_cost_is_omitted",
10371038
GasVector {
10381039
l1_gas: GasAmount(0),
10391040
l1_data_gas: GasAmount(0),
1040-
l2_gas: GasAmount(25800),
1041+
l2_gas: GasAmount(18960),
10411042
},
10421043
);
10431044
}
@@ -1077,15 +1078,15 @@ fn deploy_syscall_cost_sierra_gas() {
10771078
// -> 1 deploy syscall costs 1132 cairo steps, 7 pedersen and 18 range check builtins
10781079
// -> 1 calldata element costs 8 cairo steps and 1 pedersen
10791080
// -> 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
10821083
assert_gas(
10831084
&result,
10841085
"deploy_syscall_cost",
10851086
GasVector {
10861087
l1_gas: GasAmount(0),
10871088
l1_data_gas: GasAmount(96),
1088-
l2_gas: GasAmount(639_664),
1089+
l2_gas: GasAmount(612_444),
10891090
},
10901091
);
10911092
}
@@ -1117,15 +1118,15 @@ fn snforge_std_deploy_cost_sierra_gas() {
11171118
// 96 = gas cost of onchain data (see `deploy_syscall_cost_sierra_gas` test)
11181119
// 20000 = cost of 2 keccak syscall (see `deploy_syscall_cost_sierra_gas` test)
11191120
// 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
11221123
assert_gas(
11231124
&result,
11241125
"deploy_cost",
11251126
GasVector {
11261127
l1_gas: GasAmount(0),
11271128
l1_data_gas: GasAmount(96),
1128-
l2_gas: GasAmount(659_604),
1129+
l2_gas: GasAmount(626_814),
11291130
},
11301131
);
11311132
}
@@ -1146,15 +1147,15 @@ fn keccak_cost_sierra_gas() {
11461147
assert_passed(&result);
11471148
// 10000 = cost of 1 keccak syscall (1 * 100 * 100)
11481149
// -> 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
11511152
assert_gas(
11521153
&result,
11531154
"keccak_cost",
11541155
GasVector {
11551156
l1_gas: GasAmount(0),
11561157
l1_data_gas: GasAmount(0),
1157-
l2_gas: GasAmount(68550),
1158+
l2_gas: GasAmount(54290),
11581159
},
11591160
);
11601161
}
@@ -1195,15 +1196,15 @@ fn contract_keccak_cost_sierra_gas() {
11951196
// 87650 = cost of 1 call contract syscall (because 1 * 866 * 100 + 15 * 70)
11961197
// -> 1 call contract syscall costs 866 cairo steps and 15 range check builtins
11971198
// -> 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
12001201
assert_gas(
12011202
&result,
12021203
"contract_keccak_cost",
12031204
GasVector {
12041205
l1_gas: GasAmount(0),
12051206
l1_data_gas: GasAmount(96),
1206-
l2_gas: GasAmount(1_441_435),
1207+
l2_gas: GasAmount(1_381_475),
12071208
},
12081209
);
12091210
}
@@ -1240,15 +1241,15 @@ fn contract_range_check_cost_sierra_gas() {
12401241
// 96 = gas cost of onchain data (see `deploy_syscall_cost_sierra_gas` test)
12411242
// 142810 = cost of 1 deploy syscall (see `deploy_syscall_cost_sierra_gas` test)
12421243
// 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
12451246
assert_gas(
12461247
&result,
12471248
"contract_range_check_cost",
12481249
GasVector {
12491250
l1_gas: GasAmount(0),
12501251
l1_data_gas: GasAmount(96),
1251-
l2_gas: GasAmount(362_470),
1252+
l2_gas: GasAmount(340_860),
12521253
},
12531254
);
12541255
}
@@ -1291,15 +1292,15 @@ fn storage_write_cost_sierra_gas() {
12911292
// -> 1 storage write syscall costs 93 cairo steps and 1 range check builtin
12921293
// -> 1 range check costs 70
12931294
// -> 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
12961297
assert_gas(
12971298
&result,
12981299
"storage_write_cost",
12991300
GasVector {
13001301
l1_gas: GasAmount(0),
13011302
l1_data_gas: GasAmount(192),
1302-
l2_gas: GasAmount(294_810),
1303+
l2_gas: GasAmount(281_800),
13031304
},
13041305
);
13051306
}
@@ -1349,15 +1350,15 @@ fn multiple_storage_writes_cost_sierra_gas() {
13491350
// -> 1 storage write syscall costs 93 cairo steps and 1 range check builtin
13501351
// -> 1 range check costs 70
13511352
// -> 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
13541355
assert_gas(
13551356
&result,
13561357
"multiple_storage_writes_cost",
13571358
GasVector {
13581359
l1_gas: GasAmount(0),
13591360
l1_data_gas: GasAmount(192),
1360-
l2_gas: GasAmount(399_940),
1361+
l2_gas: GasAmount(385_530),
13611362
},
13621363
);
13631364
}
@@ -1399,15 +1400,15 @@ fn l1_message_cost_sierra_gas() {
13991400
// 14170 = cost of 1 SendMessageToL1 syscall (because 1 * 141 * 100 + 1 * 70 )
14001401
// -> 1 storage write syscall costs 141 cairo steps and 1 range check builtin
14011402
// -> 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
14041405
assert_gas(
14051406
&result,
14061407
"l1_message_cost",
14071408
GasVector {
14081409
l1_gas: GasAmount(29524),
14091410
l1_data_gas: GasAmount(96),
1410-
l2_gas: GasAmount(297_540),
1411+
l2_gas: GasAmount(285_330),
14111412
},
14121413
);
14131414
}
@@ -1463,15 +1464,15 @@ fn l1_message_cost_for_proxy_sierra_gas() {
14631464
// -> 1 pedersen costs 4050, 1 range check costs 70
14641465
// 175300 = cost of 2 call contract syscalls (see `multiple_storage_writes_cost_sierra_gas` test)
14651466
// 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
14681469
assert_gas(
14691470
&result,
14701471
"l1_message_cost_for_proxy",
14711472
GasVector {
14721473
l1_gas: GasAmount(29524),
14731474
l1_data_gas: GasAmount(192),
1474-
l2_gas: GasAmount(590_850),
1475+
l2_gas: GasAmount(566_900),
14751476
},
14761477
);
14771478
}
@@ -1509,15 +1510,15 @@ fn events_cost_sierra_gas() {
15091510
// -> 1 emit event syscall costs 61 cairo steps and 1 range check builtin
15101511
// -> 1 range check costs 70
15111512
// -> 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
15141515
assert_gas(
15151516
&result,
15161517
"events_cost",
15171518
GasVector {
15181519
l1_gas: GasAmount(0),
15191520
l1_data_gas: GasAmount(0),
1520-
l2_gas: GasAmount(966_920),
1521+
l2_gas: GasAmount(944_580),
15211522
},
15221523
);
15231524
}
@@ -1555,15 +1556,15 @@ fn events_contract_cost_sierra_gas() {
15551556
// 10000 = cost of 1 emit event syscall (see `events_contract_cost_sierra_gas` test)
15561557
// 142810 = cost of 1 deploy syscall (see `deploy_syscall_cost_sierra_gas` test)
15571558
// 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
15601561
assert_gas(
15611562
&result,
15621563
"event_emission_cost",
15631564
GasVector {
15641565
l1_gas: GasAmount(0),
15651566
l1_data_gas: GasAmount(96),
1566-
l2_gas: GasAmount(1_241_050),
1567+
l2_gas: GasAmount(1_209_540),
15671568
},
15681569
);
15691570
}

0 commit comments

Comments
 (0)