@@ -946,18 +946,18 @@ fn events_cost_cairo_steps() {
946
946
let result = run_test_case ( & test, ForgeTrackedResource :: CairoSteps ) ;
947
947
948
948
assert_passed ( & result) ;
949
- // todo(3078): verify gas required be event keys and data
950
- // 156 range_check_builtin ~= 7
951
- // 6 gas for 50 event values
952
- // ~13 gas for 50 event keys
953
- // 0 l1_gas + 0 l1_data_gas + (7 + 6 + ~13 ) * (100 / 0.0025) l2 gas
949
+ // 105 range_check_builtin = 105 * 0.04 = 4.2 = ~5
950
+ // 768_000 gas for 50 events
951
+ // 512_000 = 10_240 * 50 ( gas from 50 event keys)
952
+ // 256_000 = 5120 * 50 ( gas from 50 event data)
953
+ // 0 l1_gas + 0 l1_data_gas + ((5 ) * (100 / 0.0025) + 768_000 ) l2 gas
954
954
assert_gas (
955
955
& result,
956
956
"events_cost" ,
957
957
GasVector {
958
958
l1_gas : GasAmount ( 0 ) ,
959
959
l1_data_gas : GasAmount ( 0 ) ,
960
- l2_gas : GasAmount ( 1_048_000 ) ,
960
+ l2_gas : GasAmount ( 968_000 ) ,
961
961
} ,
962
962
) ;
963
963
}
@@ -992,18 +992,19 @@ fn events_contract_cost_cairo_steps() {
992
992
993
993
let result = run_test_case ( & test, ForgeTrackedResource :: CairoSteps ) ;
994
994
assert_passed ( & result) ;
995
- // 4119 * 0.0025 = 10.2975 ~ 11 = gas cost of steps
995
+ // (3970 steps + 14 memory holes) * 0.0025 = 9.96 ~ 10 = gas cost of steps
996
996
// 96 = gas cost of onchain data (deploy cost)
997
- // 6 gas for 50 event values
998
- // ~13 gas for 50 event keys
999
- // 0 l1_gas + 96 l1_data_gas + (11 + 6 + ~13) * (100 / 0.0025) l2 gas
997
+ // 768_000 gas for 50 events
998
+ // 512_000 = 10_240 * 50 (gas from 50 event keys)
999
+ // 256_000 = 5120 * 50 (gas from 50 event data)
1000
+ // 0 l1_gas + 96 l1_data_gas + ((10) * (100 / 0.0025) + 768_000) l2 gas
1000
1001
assert_gas (
1001
1002
& result,
1002
1003
"event_emission_cost" ,
1003
1004
GasVector {
1004
1005
l1_gas : GasAmount ( 0 ) ,
1005
1006
l1_data_gas : GasAmount ( 96 ) ,
1006
- l2_gas : GasAmount ( 1_208_000 ) ,
1007
+ l2_gas : GasAmount ( 1_168_000 ) ,
1007
1008
} ,
1008
1009
) ;
1009
1010
}
@@ -1174,15 +1175,15 @@ fn declare_cost_is_omitted_sierra_gas() {
1174
1175
let result = run_test_case ( & test, ForgeTrackedResource :: SierraGas ) ;
1175
1176
1176
1177
assert_passed ( & result) ;
1177
- // 25710 = reported consumed sierra gas
1178
- // 0 l1_gas + 0 l1_data_gas + 25710 l2 gas
1178
+ // 18780 = reported consumed sierra gas
1179
+ // 0 l1_gas + 0 l1_data_gas + 18780 l2 gas
1179
1180
assert_gas (
1180
1181
& result,
1181
1182
"declare_cost_is_omitted" ,
1182
1183
GasVector {
1183
1184
l1_gas : GasAmount ( 0 ) ,
1184
1185
l1_data_gas : GasAmount ( 0 ) ,
1185
- l2_gas : GasAmount ( 25710 ) ,
1186
+ l2_gas : GasAmount ( 18780 ) ,
1186
1187
} ,
1187
1188
) ;
1188
1189
}
@@ -1222,15 +1223,15 @@ fn deploy_syscall_cost_sierra_gas() {
1222
1223
// -> 1 deploy syscall costs 1132 cairo steps, 7 pedersen and 18 range check builtins
1223
1224
// -> 1 calldata element costs 8 cairo steps and 1 pedersen
1224
1225
// -> 1 pedersen costs 4050, 1 range check costs 70
1225
- // 476044 = reported consumed sierra gas
1226
- // 0 l1_gas + 96 l1_data_gas + (20000 + 147660 + 476044 ) l2 gas
1226
+ // 444424 = reported consumed sierra gas
1227
+ // 0 l1_gas + 96 l1_data_gas + (20000 + 147660 + 444424 ) l2 gas
1227
1228
assert_gas (
1228
1229
& result,
1229
1230
"deploy_syscall_cost" ,
1230
1231
GasVector {
1231
1232
l1_gas : GasAmount ( 0 ) ,
1232
1233
l1_data_gas : GasAmount ( 96 ) ,
1233
- l2_gas : GasAmount ( 643_704 ) ,
1234
+ l2_gas : GasAmount ( 612_084 ) ,
1234
1235
} ,
1235
1236
) ;
1236
1237
}
@@ -1262,15 +1263,15 @@ fn snforge_std_deploy_cost_sierra_gas() {
1262
1263
// 96 = gas cost of onchain data (see `deploy_syscall_cost_sierra_gas` test)
1263
1264
// 20000 = cost of 2 keccak syscall (see `deploy_syscall_cost_sierra_gas` test)
1264
1265
// 147660 = cost of 1 deploy syscall (see `deploy_syscall_cost_sierra_gas` test)
1265
- // 495894 = reported consumed sierra gas
1266
- // 0 l1_gas + 96 l1_data_gas + (20000 + 147660 + 495894 ) l2 gas
1266
+ // 458074 = reported consumed sierra gas
1267
+ // 0 l1_gas + 96 l1_data_gas + (20000 + 147660 + 458074 ) l2 gas
1267
1268
assert_gas (
1268
1269
& result,
1269
1270
"deploy_cost" ,
1270
1271
GasVector {
1271
1272
l1_gas : GasAmount ( 0 ) ,
1272
1273
l1_data_gas : GasAmount ( 96 ) ,
1273
- l2_gas : GasAmount ( 663_554 ) ,
1274
+ l2_gas : GasAmount ( 625_734 ) ,
1274
1275
} ,
1275
1276
) ;
1276
1277
}
@@ -1291,15 +1292,15 @@ fn keccak_cost_sierra_gas() {
1291
1292
assert_passed ( & result) ;
1292
1293
// 10000 = cost of 1 keccak syscall (1 * 100 * 100)
1293
1294
// -> 1 keccak syscall costs 100 cairo steps
1294
- // 55670 = reported consumed sierra gas
1295
- // 0 l1_gas + 0 l1_data_gas + (10000 + 55670 ) l2 gas
1295
+ // 44290 = reported consumed sierra gas
1296
+ // 0 l1_gas + 0 l1_data_gas + (10000 + 44290 ) l2 gas
1296
1297
assert_gas (
1297
1298
& result,
1298
1299
"keccak_cost" ,
1299
1300
GasVector {
1300
1301
l1_gas : GasAmount ( 0 ) ,
1301
1302
l1_data_gas : GasAmount ( 0 ) ,
1302
- l2_gas : GasAmount ( 65670 ) ,
1303
+ l2_gas : GasAmount ( 54290 ) ,
1303
1304
} ,
1304
1305
) ;
1305
1306
}
@@ -1340,15 +1341,15 @@ fn contract_keccak_cost_sierra_gas() {
1340
1341
// 87650 = cost of 1 call contract syscall (because 1 * 866 * 100 + 15 * 70)
1341
1342
// -> 1 call contract syscall costs 866 cairo steps and 15 range check builtins
1342
1343
// -> 1 range check costs 70
1343
- // 1168655 = reported consumed sierra gas
1344
- // 0 l1_gas + 96 l1_data_gas + (142810 + 50000 + 87650 + 1168655 ) l2 gas
1344
+ // 1099755 = reported consumed sierra gas
1345
+ // 0 l1_gas + 96 l1_data_gas + (142810 + 50000 + 87650 + 1099755 ) l2 gas
1345
1346
assert_gas (
1346
1347
& result,
1347
1348
"contract_keccak_cost" ,
1348
1349
GasVector {
1349
1350
l1_gas : GasAmount ( 0 ) ,
1350
1351
l1_data_gas : GasAmount ( 96 ) ,
1351
- l2_gas : GasAmount ( 1_449_115 ) ,
1352
+ l2_gas : GasAmount ( 1_380_215 ) ,
1352
1353
} ,
1353
1354
) ;
1354
1355
}
@@ -1385,15 +1386,15 @@ fn contract_range_check_cost_sierra_gas() {
1385
1386
// 96 = gas cost of onchain data (see `deploy_syscall_cost_sierra_gas` test)
1386
1387
// 142810 = cost of 1 deploy syscall (see `deploy_syscall_cost_sierra_gas` test)
1387
1388
// 87650 = cost of 1 call contract syscall (see `contract_keccak_cost_sierra_gas` test)
1388
- // 139690 = reported consumed sierra gas
1389
- // 0 l1_gas + 96 l1_data_gas + (142810 + 87650 + 139690 ) l2 gas
1389
+ // 109140 = reported consumed sierra gas
1390
+ // 0 l1_gas + 96 l1_data_gas + (142810 + 87650 + 109140 ) l2 gas
1390
1391
assert_gas (
1391
1392
& result,
1392
1393
"contract_range_check_cost" ,
1393
1394
GasVector {
1394
1395
l1_gas : GasAmount ( 0 ) ,
1395
1396
l1_data_gas : GasAmount ( 96 ) ,
1396
- l2_gas : GasAmount ( 370_150 ) ,
1397
+ l2_gas : GasAmount ( 339_600 ) ,
1397
1398
} ,
1398
1399
) ;
1399
1400
}
@@ -1436,15 +1437,15 @@ fn storage_write_cost_sierra_gas() {
1436
1437
// -> 1 storage write syscall costs 93 cairo steps and 1 range check builtin
1437
1438
// -> 1 range check costs 70
1438
1439
// -> the minimum total cost is `syscall_base_gas_cost`, which is pre-charged by the compiler (atm it is 100 * 100)
1439
- // 62030 = reported consumed sierra gas
1440
- // 0 l1_gas + (96 + 64 + 32) l1_data_gas + (142810 + 87650 + 10000 + 62030 ) l2 gas
1440
+ // 40080 = reported consumed sierra gas
1441
+ // 0 l1_gas + (96 + 64 + 32) l1_data_gas + (142810 + 87650 + 10000 + 40080 ) l2 gas
1441
1442
assert_gas (
1442
1443
& result,
1443
1444
"storage_write_cost" ,
1444
1445
GasVector {
1445
1446
l1_gas : GasAmount ( 0 ) ,
1446
1447
l1_data_gas : GasAmount ( 192 ) ,
1447
- l2_gas : GasAmount ( 302_490 ) ,
1448
+ l2_gas : GasAmount ( 280_540 ) ,
1448
1449
} ,
1449
1450
) ;
1450
1451
}
@@ -1494,15 +1495,15 @@ fn multiple_storage_writes_cost_sierra_gas() {
1494
1495
// -> 1 storage write syscall costs 93 cairo steps and 1 range check builtin
1495
1496
// -> 1 range check costs 70
1496
1497
// -> the minimum total cost is `syscall_base_gas_cost`, which is pre-charged by the compiler (atm it is 100 * 100)
1497
- // 73240 = reported consumed sierra gas
1498
- // 0 l1_gas + (64 + 64 + 32 + 32) l1_data_gas + (142810 + 175300 + 20000 + 73240 ) l2 gas
1498
+ // 45980 = reported consumed sierra gas
1499
+ // 0 l1_gas + (64 + 64 + 32 + 32) l1_data_gas + (142810 + 175300 + 20000 + 45980 ) l2 gas
1499
1500
assert_gas (
1500
1501
& result,
1501
1502
"multiple_storage_writes_cost" ,
1502
1503
GasVector {
1503
1504
l1_gas : GasAmount ( 0 ) ,
1504
1505
l1_data_gas : GasAmount ( 192 ) ,
1505
- l2_gas : GasAmount ( 411_350 ) ,
1506
+ l2_gas : GasAmount ( 384_090 ) ,
1506
1507
} ,
1507
1508
) ;
1508
1509
}
@@ -1544,15 +1545,15 @@ fn l1_message_cost_sierra_gas() {
1544
1545
// 14170 = cost of 1 SendMessageToL1 syscall (because 1 * 141 * 100 + 1 * 70 )
1545
1546
// -> 1 storage write syscall costs 141 cairo steps and 1 range check builtin
1546
1547
// -> 1 range check costs 70
1547
- // 60890 = reported consumed sierra gas
1548
- // 29524 l1_gas + 96 l1_data_gas + (142810 + 87650 + 14170 + 60890 ) l2 gas
1548
+ // 39440 = reported consumed sierra gas
1549
+ // 29524 l1_gas + 96 l1_data_gas + (142810 + 87650 + 14170 + 39440 ) l2 gas
1549
1550
assert_gas (
1550
1551
& result,
1551
1552
"l1_message_cost" ,
1552
1553
GasVector {
1553
1554
l1_gas : GasAmount ( 29524 ) ,
1554
1555
l1_data_gas : GasAmount ( 96 ) ,
1555
- l2_gas : GasAmount ( 305_520 ) ,
1556
+ l2_gas : GasAmount ( 284_070 ) ,
1556
1557
} ,
1557
1558
) ;
1558
1559
}
@@ -1608,15 +1609,15 @@ fn l1_message_cost_for_proxy_sierra_gas() {
1608
1609
// -> 1 pedersen costs 4050, 1 range check costs 70
1609
1610
// 175300 = cost of 2 call contract syscalls (see `multiple_storage_writes_cost_sierra_gas` test)
1610
1611
// 14170 = cost of 1 SendMessageToL1 syscall (see `l1_message_cost_sierra_gas` test)
1611
- // 112890 = reported consumed sierra gas
1612
- // 29524 l1_gas + (128 + 64) l1_data_gas + (285620 + 175300 + 14170 + 112890 ) l2 gas
1612
+ // 71260 = reported consumed sierra gas
1613
+ // 29524 l1_gas + (128 + 64) l1_data_gas + (285620 + 175300 + 14170 + 71260 ) l2 gas
1613
1614
assert_gas (
1614
1615
& result,
1615
1616
"l1_message_cost_for_proxy" ,
1616
1617
GasVector {
1617
1618
l1_gas : GasAmount ( 29524 ) ,
1618
1619
l1_data_gas : GasAmount ( 192 ) ,
1619
- l2_gas : GasAmount ( 587_980 ) ,
1620
+ l2_gas : GasAmount ( 546_350 ) ,
1620
1621
} ,
1621
1622
) ;
1622
1623
}
@@ -1654,15 +1655,15 @@ fn events_cost_sierra_gas() {
1654
1655
// -> 1 emit event syscall costs 61 cairo steps and 1 range check builtin
1655
1656
// -> 1 range check costs 70
1656
1657
// -> the minimum total cost is `syscall_base_gas_cost`, which is pre-charged by the compiler (atm it is 100 * 100)
1657
- // 188920 = reported consumed sierra gas
1658
- // 0 l1_gas + 0 l1_data_gas + (512000 + 256000 + 10000 + 188920 ) l2 gas
1658
+ // 167550 = reported consumed sierra gas
1659
+ // 0 l1_gas + 0 l1_data_gas + (512000 + 256000 + 10000 + 167550 ) l2 gas
1659
1660
assert_gas (
1660
1661
& result,
1661
1662
"events_cost" ,
1662
1663
GasVector {
1663
1664
l1_gas : GasAmount ( 0 ) ,
1664
1665
l1_data_gas : GasAmount ( 0 ) ,
1665
- l2_gas : GasAmount ( 966_920 ) ,
1666
+ l2_gas : GasAmount ( 945_550 ) ,
1666
1667
} ,
1667
1668
) ;
1668
1669
}
@@ -1700,15 +1701,15 @@ fn events_contract_cost_sierra_gas() {
1700
1701
// 10000 = cost of 1 emit event syscall (see `events_cost_sierra_gas` test)
1701
1702
// 142810 = cost of 1 deploy syscall (see `deploy_syscall_cost_sierra_gas` test)
1702
1703
// 87650 = cost of 1 call contract syscall (see `contract_keccak_cost_sierra_gas` test)
1703
- // 240270 = reported consumed sierra gas
1704
- // 0 l1_gas + 96 l1_data_gas + (512000 + 256000 + 10000 + 142810 + 87650 + 240270 ) l2 gas
1704
+ // 199820 = reported consumed sierra gas
1705
+ // 0 l1_gas + 96 l1_data_gas + (512000 + 256000 + 10000 + 142810 + 87650 + 199820 ) l2 gas
1705
1706
assert_gas (
1706
1707
& result,
1707
1708
"event_emission_cost" ,
1708
1709
GasVector {
1709
1710
l1_gas : GasAmount ( 0 ) ,
1710
1711
l1_data_gas : GasAmount ( 96 ) ,
1711
- l2_gas : GasAmount ( 1_248_730 ) ,
1712
+ l2_gas : GasAmount ( 1_208_280 ) ,
1712
1713
} ,
1713
1714
) ;
1714
1715
}
@@ -1769,15 +1770,15 @@ fn nested_call_cost_sierra_gas() {
1769
1770
// 10000 = cost of 1 emit event syscall (see `events_cost_sierra_gas` test)
1770
1771
// 142810 = cost of 1 deploy syscall (see `deploy_syscall_cost_sierra_gas` test)
1771
1772
// 87650 = cost of 1 call contract syscall (see `contract_keccak_cost_sierra_gas` test)
1772
- // 663192 = reported consumed sierra gas
1773
- // 0 l1_gas + 288 l1_data_gas + (512000 + 256000 + 10000 + 3 * 142810 + 2 * 87650 + 663192 ) l2 gas
1773
+ // 569922 = reported consumed sierra gas
1774
+ // 0 l1_gas + 288 l1_data_gas + (512000 + 256000 + 10000 + 3 * 142810 + 2 * 87650 + 569922 ) l2 gas
1774
1775
assert_gas (
1775
1776
& result,
1776
1777
"test_call_other_contract" ,
1777
1778
GasVector {
1778
1779
l1_gas : GasAmount ( 0 ) ,
1779
1780
l1_data_gas : GasAmount ( 288 ) ,
1780
- l2_gas : GasAmount ( 2_044_922 ) ,
1781
+ l2_gas : GasAmount ( 1_951_652 ) ,
1781
1782
} ,
1782
1783
) ;
1783
1784
}
@@ -1840,15 +1841,15 @@ fn nested_call_cost_in_forked_contract_sierra_gas() {
1840
1841
// 10000 = cost of 1 emit event syscall (see `events_cost_sierra_gas` test)
1841
1842
// 142810 = cost of 1 deploy syscall (see `deploy_syscall_cost_sierra_gas` test)
1842
1843
// 87650 = cost of 1 call contract syscall (see `contract_keccak_cost_sierra_gas` test)
1843
- // 620462 = reported consumed sierra gas
1844
- // 0 l1_gas + 192 l1_data_gas + (512000 + 256000 + 10000 + 2 * 142810 + 2 * 87650 + 620462 ) l2 gas
1844
+ // 560592 = reported consumed sierra gas
1845
+ // 0 l1_gas + 192 l1_data_gas + (512000 + 256000 + 10000 + 2 * 142810 + 2 * 87650 + 560592 ) l2 gas
1845
1846
assert_gas (
1846
1847
& result,
1847
1848
"test_call_other_contract_fork" ,
1848
1849
GasVector {
1849
1850
l1_gas : GasAmount ( 0 ) ,
1850
1851
l1_data_gas : GasAmount ( 192 ) ,
1851
- l2_gas : GasAmount ( 1_859_382 ) ,
1852
+ l2_gas : GasAmount ( 1_799_512 ) ,
1852
1853
} ,
1853
1854
) ;
1854
1855
}
0 commit comments