Generated via bash utils/inspect.sh
.
forge test --gas-report --no-match-path "test/script/**/*"
lib/account-abstraction/contracts/core/EntryPoint.sol:EntryPoint contract |
|
|
|
|
|
Deployment Cost |
Deployment Size |
|
|
|
|
3641750 |
16650 |
|
|
|
|
Function Name |
min |
avg |
median |
max |
# calls |
balanceOf |
572 |
1572 |
1572 |
2572 |
16 |
getDepositInfo |
1162 |
1162 |
1162 |
1162 |
10 |
getUserOpHash |
1534 |
1575 |
1570 |
1624 |
20 |
handleOps |
46248 |
148656 |
159651 |
204479 |
23 |
lib/account-abstraction/contracts/samples/SimpleAccount.sol:SimpleAccount contract |
|
|
|
|
|
Deployment Cost |
Deployment Size |
|
|
|
|
1532409 |
7166 |
|
|
|
|
Function Name |
min |
avg |
median |
max |
# calls |
entryPoint |
382 |
382 |
382 |
382 |
6 |
initialize |
48079 |
48079 |
48079 |
48079 |
6 |
proxiableUUID |
337 |
337 |
337 |
337 |
6 |
lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol:ERC1967Proxy contract |
|
|
|
|
|
Deployment Cost |
Deployment Size |
|
|
|
|
145164 |
862 |
|
|
|
|
Function Name |
min |
avg |
median |
max |
# calls |
disableInitializers |
32143 |
32143 |
32143 |
32143 |
1 |
getInitializedVersion |
659 |
659 |
659 |
659 |
1 |
upgradeToAndCall |
32662 |
38282 |
37813 |
41604 |
5 |
src/LightAccount.sol:LightAccount contract |
|
|
|
|
|
Deployment Cost |
Deployment Size |
|
|
|
|
0 |
0 |
|
|
|
|
Function Name |
min |
avg |
median |
max |
# calls |
addDeposit |
34019 |
34019 |
34019 |
34019 |
5 |
eip712Domain |
1270 |
1270 |
1270 |
1270 |
9 |
entryPoint |
448 |
448 |
448 |
448 |
1 |
execute |
2968 |
25453 |
26074 |
57668 |
9 |
executeBatch(address[],bytes[]) |
2886 |
15726 |
15726 |
28567 |
2 |
executeBatch(address[],uint256[],bytes[]) |
3165 |
19406 |
19406 |
35647 |
2 |
getDeposit |
1463 |
2963 |
1463 |
5963 |
3 |
initialize |
23064 |
48839 |
49453 |
49453 |
43 |
isValidSignature |
1059 |
2748 |
1126 |
7091 |
10 |
owner |
532 |
532 |
532 |
532 |
3 |
transferOwnership |
2915 |
5294 |
5385 |
7532 |
10 |
upgradeToAndCall |
2874 |
43271 |
56021 |
58168 |
4 |
validateUserOp |
620 |
26385 |
35542 |
36228 |
10 |
withdrawDepositTo |
2641 |
31501 |
38139 |
47086 |
4 |
src/LightAccountFactory.sol:LightAccountFactory contract |
|
|
|
|
|
Deployment Cost |
Deployment Size |
|
|
|
|
2482191 |
11934 |
|
|
|
|
Function Name |
min |
avg |
median |
max |
# calls |
acceptOwnership |
28076 |
28076 |
28076 |
28076 |
1 |
addStake |
60756 |
60756 |
60756 |
60756 |
4 |
createAccount |
24600 |
140503 |
143831 |
143831 |
44 |
getAddress |
625 |
625 |
625 |
625 |
1 |
owner |
387 |
1053 |
387 |
2387 |
3 |
renounceOwnership |
2360 |
2360 |
2360 |
2360 |
1 |
transferOwnership |
47557 |
47557 |
47557 |
47557 |
1 |
unlockStake |
33544 |
33544 |
33544 |
33544 |
2 |
withdraw |
31284 |
31284 |
31284 |
31284 |
1 |
withdrawStake |
29698 |
33088 |
33088 |
36478 |
2 |
src/MultiOwnerLightAccount.sol:MultiOwnerLightAccount contract |
|
|
|
|
|
Deployment Cost |
Deployment Size |
|
|
|
|
0 |
0 |
|
|
|
|
Function Name |
min |
avg |
median |
max |
# calls |
addDeposit |
34047 |
34047 |
34047 |
34047 |
5 |
eip712Domain |
1284 |
1284 |
1284 |
1284 |
13 |
entryPoint |
486 |
486 |
486 |
486 |
1 |
execute |
3058 |
28642 |
27215 |
57706 |
10 |
executeBatch(address[],bytes[]) |
2936 |
15776 |
15776 |
28617 |
2 |
executeBatch(address[],uint256[],bytes[]) |
3243 |
19484 |
19484 |
35725 |
2 |
getDeposit |
1499 |
2999 |
1499 |
5999 |
3 |
initialize |
74505 |
118169 |
74505 |
2432375 |
54 |
isValidSignature |
1050 |
4182 |
3914 |
7839 |
14 |
owners |
1567 |
1567 |
1567 |
1567 |
4 |
updateOwners |
3501 |
25162 |
36037 |
38231 |
17 |
upgradeToAndCall |
2941 |
43308 |
56029 |
58235 |
4 |
validateUserOp |
652 |
26100 |
35598 |
37219 |
13 |
withdrawDepositTo |
2712 |
31542 |
38151 |
47157 |
4 |
src/MultiOwnerLightAccountFactory.sol:MultiOwnerLightAccountFactory contract |
|
|
|
|
|
Deployment Cost |
Deployment Size |
|
|
|
|
3163318 |
15122 |
|
|
|
|
Function Name |
min |
avg |
median |
max |
# calls |
acceptOwnership |
28076 |
28076 |
28076 |
28076 |
1 |
addStake |
60778 |
60778 |
60778 |
60778 |
4 |
createAccount |
22252 |
370044 |
25206 |
2620802 |
8 |
createAccountSingle |
21926 |
162007 |
170029 |
170029 |
55 |
getAddress |
700 |
8926 |
1816 |
48969 |
8 |
owner |
365 |
1031 |
365 |
2365 |
3 |
renounceOwnership |
2360 |
2360 |
2360 |
2360 |
1 |
transferOwnership |
47579 |
47579 |
47579 |
47579 |
1 |
unlockStake |
33566 |
33566 |
33566 |
33566 |
2 |
withdraw |
31298 |
31298 |
31298 |
31298 |
1 |
withdrawStake |
29720 |
33107 |
33107 |
36495 |
2 |
test/CustomSlotInitializable.t.sol:DisablesInitializersWhileInitializing contract |
|
|
|
|
|
Deployment Cost |
Deployment Size |
|
|
|
|
187824 |
697 |
|
|
|
|
Function Name |
min |
avg |
median |
max |
# calls |
initialize |
43784 |
43784 |
43784 |
43784 |
1 |
test/CustomSlotInitializable.t.sol:IsInitializingChecker contract |
|
|
|
|
|
Deployment Cost |
Deployment Size |
|
|
|
|
210601 |
809 |
|
|
|
|
Function Name |
min |
avg |
median |
max |
# calls |
initialize |
67172 |
67172 |
67172 |
67172 |
1 |
isInitializing |
306 |
306 |
306 |
306 |
1 |
wasInitializing |
271 |
271 |
271 |
271 |
1 |
test/CustomSlotInitializable.t.sol:V1 contract |
|
|
|
|
|
Deployment Cost |
Deployment Size |
|
|
|
|
595231 |
2640 |
|
|
|
|
Function Name |
min |
avg |
median |
max |
# calls |
disableInitializers |
6296 |
6296 |
6296 |
6296 |
1 |
getInitializedVersion |
388 |
388 |
388 |
388 |
1 |
initialize |
2487 |
21739 |
23904 |
44968 |
10 |
proxiableUUID |
246 |
246 |
246 |
246 |
2 |
upgradeToAndCall |
5957 |
11696 |
12962 |
14903 |
4 |
test/CustomSlotInitializable.t.sol:V2 contract |
|
|
|
|
|
Deployment Cost |
Deployment Size |
|
|
|
|
508142 |
2226 |
|
|
|
|
Function Name |
min |
avg |
median |
max |
# calls |
getInitializedVersion |
361 |
361 |
361 |
361 |
1 |
initialize |
2401 |
5025 |
6338 |
6338 |
3 |
proxiableUUID |
219 |
219 |
219 |
219 |
3 |
upgradeToAndCall |
11108 |
11108 |
11108 |
11108 |
1 |
test/LightAccount.t.sol:LightSwitch contract |
|
|
|
|
|
Deployment Cost |
Deployment Size |
|
|
|
|
108729 |
284 |
|
|
|
|
Function Name |
min |
avg |
median |
max |
# calls |
on |
267 |
267 |
267 |
267 |
6 |
test/LightAccount.t.sol:Owner contract |
|
|
|
|
|
Deployment Cost |
Deployment Size |
|
|
|
|
224260 |
828 |
|
|
|
|
Function Name |
min |
avg |
median |
max |
# calls |
isValidSignature |
767 |
767 |
767 |
767 |
3 |
sign |
623 |
623 |
623 |
623 |
3 |
test/MultiOwnerLightAccount.t.sol:LightSwitch contract |
|
|
|
|
|
Deployment Cost |
Deployment Size |
|
|
|
|
108729 |
284 |
|
|
|
|
Function Name |
min |
avg |
median |
max |
# calls |
on |
267 |
711 |
267 |
2267 |
9 |
test/MultiOwnerLightAccount.t.sol:Owner contract |
|
|
|
|
|
Deployment Cost |
Deployment Size |
|
|
|
|
224272 |
828 |
|
|
|
|
Function Name |
min |
avg |
median |
max |
# calls |
isValidSignature |
767 |
767 |
767 |
767 |
7 |
sign |
623 |
623 |
623 |
623 |
8 |
Ran 5 test suites in 1.52s (3.44s CPU time): 118 tests passed, 0 failed, 0 skipped (118 total tests)
forge inspect src/LightAccount.sol:LightAccount gasestimates
{
"creation": {
"codeDepositCost": "1503600",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"addDeposit()": "infinite",
"eip712Domain()": "infinite",
"entryPoint()": "infinite",
"execute(address,uint256,bytes)": "infinite",
"executeBatch(address[],bytes[])": "infinite",
"executeBatch(address[],uint256[],bytes[])": "infinite",
"getDeposit()": "infinite",
"getNonce()": "infinite",
"initialize(address)": "infinite",
"isValidSignature(bytes32,bytes)": "infinite",
"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)": "infinite",
"onERC1155Received(address,address,uint256,uint256,bytes)": "876",
"onERC721Received(address,address,uint256,bytes)": "497",
"owner()": "2532",
"proxiableUUID()": "infinite",
"supportsInterface(bytes4)": "316",
"transferOwnership(address)": "infinite",
"upgradeToAndCall(address,bytes)": "infinite",
"validateUserOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32,uint256)": "infinite",
"withdrawDepositTo(address,uint256)": "infinite"
},
"internal": {
"_domainNameAndVersion()": "infinite",
"_getStorage()": "infinite",
"_initialize(address)": "infinite",
"_isFromOwner()": "infinite",
"_isValidContractOwnerSignatureNow(bytes32,bytes memory)": "infinite",
"_isValidEOAOwnerSignature(bytes32,bytes memory)": "infinite",
"_isValidSignature(bytes32,bytes calldata)": "infinite",
"_transferOwnership(address)": "infinite",
"_validateSignature(struct PackedUserOperation calldata,bytes32)": "infinite"
}
}
forge inspect src/LightAccountFactory.sol:LightAccountFactory gasestimates
{
"creation": {
"codeDepositCost": "673600",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"ACCOUNT_IMPLEMENTATION()": "infinite",
"ENTRY_POINT()": "infinite",
"acceptOwnership()": "50212",
"addStake(uint32,uint256)": "infinite",
"createAccount(address,uint256)": "infinite",
"getAddress(address,uint256)": "infinite",
"owner()": "2387",
"pendingOwner()": "2505",
"renounceOwnership()": "2375",
"transferOwnership(address)": "30453",
"unlockStake()": "infinite",
"withdraw(address,address,uint256)": "infinite",
"withdrawStake(address)": "infinite"
},
"internal": {
"_getCombinedSalt(address,uint256)": "infinite"
}
}
forge inspect src/MultiOwnerLightAccount.sol:MultiOwnerLightAccount gasestimates
{
"creation": {
"codeDepositCost": "1840600",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"addDeposit()": "infinite",
"eip712Domain()": "infinite",
"entryPoint()": "infinite",
"execute(address,uint256,bytes)": "infinite",
"executeBatch(address[],bytes[])": "infinite",
"executeBatch(address[],uint256[],bytes[])": "infinite",
"getDeposit()": "infinite",
"getNonce()": "infinite",
"initialize(address[])": "infinite",
"isValidSignature(bytes32,bytes)": "infinite",
"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)": "infinite",
"onERC1155Received(address,address,uint256,uint256,bytes)": "884",
"onERC721Received(address,address,uint256,bytes)": "494",
"owners()": "infinite",
"proxiableUUID()": "infinite",
"supportsInterface(bytes4)": "315",
"updateOwners(address[],address[])": "infinite",
"upgradeToAndCall(address,bytes)": "infinite",
"validateUserOp((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes),bytes32,uint256)": "infinite",
"withdrawDepositTo(address,uint256)": "infinite"
},
"internal": {
"_addOwnersOrRevert(address[] memory)": "infinite",
"_domainNameAndVersion()": "infinite",
"_getStorage()": "infinite",
"_initialize(address[] calldata)": "infinite",
"_isFromOwner()": "infinite",
"_isValidContractOwnerSignatureNowLoop(bytes32,bytes memory)": "infinite",
"_isValidContractOwnerSignatureNowSingle(address,bytes32,bytes memory)": "infinite",
"_isValidEOAOwnerSignature(bytes32,bytes memory)": "infinite",
"_isValidSignature(bytes32,bytes calldata)": "infinite",
"_removeOwnersOrRevert(address[] memory)": "infinite",
"_updateOwners(address[] memory,address[] memory)": "infinite",
"_validateSignature(struct PackedUserOperation calldata,bytes32)": "infinite"
}
}
forge inspect src/MultiOwnerLightAccountFactory.sol:MultiOwnerLightAccountFactory gasestimates
{
"creation": {
"codeDepositCost": "969400",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"ACCOUNT_IMPLEMENTATION()": "infinite",
"ENTRY_POINT()": "infinite",
"acceptOwnership()": "50212",
"addStake(uint32,uint256)": "infinite",
"createAccount(address[],uint256)": "infinite",
"createAccountSingle(address,uint256)": "infinite",
"getAddress(address[],uint256)": "infinite",
"owner()": "2365",
"pendingOwner()": "2527",
"renounceOwnership()": "2375",
"transferOwnership(address)": "30475",
"unlockStake()": "infinite",
"withdraw(address,address,uint256)": "infinite",
"withdrawStake(address)": "infinite"
},
"internal": {
"_getCombinedSalt(address[] memory,uint256)": "infinite",
"_validateOwnersArray(address[] memory)": "infinite"
}
}
forge inspect src/common/BaseLightAccount.sol:BaseLightAccount gasestimates
forge inspect src/common/BaseLightAccountFactory.sol:BaseLightAccountFactory gasestimates
forge inspect src/common/CustomSlotInitializable.sol:CustomSlotInitializable gasestimates
forge inspect src/common/ERC1271.sol:ERC1271 gasestimates
forge inspect src/external/solady/EIP712.sol:EIP712 gasestimates
forge inspect src/external/solady/UUPSUpgradeable.sol:UUPSUpgradeable gasestimates