Skip to content

Latest commit

 

History

History
194 lines (175 loc) · 14.1 KB

.gasestimates.md

File metadata and controls

194 lines (175 loc) · 14.1 KB

Gas Estimates

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
4128022 20516
Function Name min avg median max # calls
balanceOf 614 1014 614 2614 5
depositTo 22537 23870 24537 24537 3
getUserOpHash 2178 2181 2178 2187 3
handleOps 67556 114566 128637 147506 3
innerHandleOp 33718 43164 43164 52611 2
receive 22127 22127 22127 22127 3
withdrawTo 36996 36996 36996 36996 1
lib/account-abstraction/contracts/samples/SimpleAccount.sol:SimpleAccount contract
Deployment Cost Deployment Size
1479733 7684
Function Name min avg median max # calls
entryPoint 407 407 407 407 1
initialize 26217 26217 26217 26217 1
proxiableUUID 387 387 387 387 1
lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol:ERC1967Proxy contract
Deployment Cost Deployment Size
120671 1228
Function Name min avg median max # calls
addDeposit 30212 36212 39212 39212 3
disableInitializers 11105 11105 11105 11105 1
entryPoint 723 2984 2984 5245 2
execute 7455 16650 8658 32984 5
executeBatch 7794 20627 20627 33460 2
getDeposit 1825 4825 1825 10825 3
getInitializedVersion 677 677 677 677 1
isValidSignature 11229 12909 12909 14589 2
owner 826 826 826 826 2
transferOwnership 5863 8281 7744 12342 5
upgradeToAndCall 4786 17805 13316 42122 7
validateUserOp 40706 41828 40712 44066 3
withdrawDepositTo 2978 21626 21626 40275 2
src/LightAccount.sol:LightAccount contract
Deployment Cost Deployment Size
1661569 8640
Function Name min avg median max # calls
addDeposit 29899 32899 34399 34399 3
entryPoint 429 429 429 429 1
execute 2950 13606 7112 28147 5
executeBatch 2920 15762 15762 28605 2
getDeposit 1509 3009 1509 6009 3
initialize 49609 49609 49609 49609 25
isValidSignature 6383 8063 8063 9743 2
owner 510 510 510 510 2
transferOwnership 2878 4355 2912 7526 5
upgradeToAndCall 3295 20290 20290 37285 2
validateUserOp 35733 36853 35733 39093 3
withdrawDepositTo 2643 21299 21299 39956 2
src/LightAccountFactory.sol:LightAccountFactory contract
Deployment Cost Deployment Size
2154580 11142
Function Name min avg median max # calls
createAccount 4821 155115 161027 163527 26
getAddress 4672 4672 4672 4672 1
test/CustomSlotInitializable.t.sol:DisablesInitializersWhileInitializing contract
Deployment Cost Deployment Size
156238 852
Function Name min avg median max # calls
initialize 22755 22755 22755 22755 1
test/CustomSlotInitializable.t.sol:IsInitializingChecker contract
Deployment Cost Deployment Size
154653 851
Function Name min avg median max # calls
initialize 46069 46069 46069 46069 1
isInitializing 303 303 303 303 1
wasInitializing 267 267 267 267 1
test/CustomSlotInitializable.t.sol:V1 contract
Deployment Cost Deployment Size
762520 3920
Function Name min avg median max # calls
disableInitializers 6292 6292 6292 6292 1
getInitializedVersion 391 391 391 391 1
initialize 684 19455 23898 23898 10
proxiableUUID 273 273 273 273 2
upgradeToAndCall 8469 13681 14454 17349 4
test/CustomSlotInitializable.t.sol:V2 contract
Deployment Cost Deployment Size
703047 3616
Function Name min avg median max # calls
getInitializedVersion 361 361 361 361 1
initialize 504 4410 6363 6363 3
proxiableUUID 243 243 243 243 3
upgradeToAndCall 3552 3552 3552 3552 1
test/LightAccount.t.sol:LightSwitch contract
Deployment Cost Deployment Size
52111 288
Function Name min avg median max # calls
on 267 267 267 267 3
turnOn 22274 22274 22274 22274 3
test/LightAccount.t.sol:Reverter contract
Deployment Cost Deployment Size
46905 261
Function Name min avg median max # calls
doRevert 201 201 201 201 1

Ran 3 test suites: 31 tests passed, 0 failed, 0 skipped (31 total tests) forge inspect src/CustomSlotInitializable.sol:CustomSlotInitializable gasestimates

null

forge inspect src/LightAccount.sol:LightAccount gasestimates

{
  "creation": {
    "codeDepositCost": "1636200",
    "executionCost": "infinite",
    "totalCost": "infinite"
  },
  "external": {
    "addDeposit()": "infinite",
    "entryPoint()": "infinite",
    "execute(address,uint256,bytes)": "infinite",
    "executeBatch(address[],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)": "infinite",
    "onERC721Received(address,address,uint256,bytes)": "infinite",
    "owner()": "2510",
    "proxiableUUID()": "infinite",
    "supportsInterface(bytes4)": "332",
    "tokensReceived(address,address,address,uint256,bytes,bytes)": "infinite",
    "transferOwnership(address)": "30747",
    "upgradeTo(address)": "infinite",
    "upgradeToAndCall(address,bytes)": "infinite",
    "validateUserOp((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes),bytes32,uint256)": "infinite",
    "withdrawDepositTo(address,uint256)": "infinite"
  },
  "internal": {
    "_authorizeUpgrade(address)": "infinite",
    "_call(address,uint256,bytes memory)": "infinite",
    "_getStorage()": "infinite",
    "_initialize(address)": "infinite",
    "_onlyOwner()": "infinite",
    "_requireFromEntryPointOrOwner()": "infinite",
    "_transferOwnership(address)": "27881",
    "_validateSignature(struct UserOperation calldata,bytes32)": "infinite"
  }
}

forge inspect src/LightAccountFactory.sol:LightAccountFactory gasestimates

{
  "creation": {
    "codeDepositCost": "458600",
    "executionCost": "infinite",
    "totalCost": "infinite"
  },
  "external": {
    "accountImplementation()": "infinite",
    "createAccount(address,uint256)": "infinite",
    "getAddress(address,uint256)": "infinite"
  },
  "internal": {}
}