@pimlico/alto 0.0.0-main.20250605T142651 → 0.0.0-main.20250611T105955

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/contracts/EIP712.sol/EIP712.json +1 -1
  2. package/contracts/ERC165.sol/ERC165.json +1 -1
  3. package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -1
  4. package/contracts/EntryPoint.sol/EntryPoint.json +1 -1
  5. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -0
  6. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -0
  7. package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -0
  8. package/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -0
  9. package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -0
  10. package/contracts/EntryPointSimulations.sol/{EntryPointSimulations.json → EntryPointSimulations08.json} +1 -1
  11. package/contracts/Exec.sol/Exec.json +1 -1
  12. package/contracts/IAccount.sol/IAccount.json +1 -1
  13. package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -1
  14. package/contracts/IAggregator.sol/IAggregator.json +1 -1
  15. package/contracts/IERC165.sol/IERC165.json +1 -1
  16. package/contracts/IERC5267.sol/IERC5267.json +1 -1
  17. package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -1
  18. package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -1
  19. package/contracts/INonceManager.sol/INonceManager.json +1 -1
  20. package/contracts/IPaymaster.sol/IPaymaster.json +1 -1
  21. package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -1
  22. package/contracts/IStakeManager.sol/IStakeManager.json +1 -1
  23. package/contracts/LibBytes.sol/LibBytes.json +1 -0
  24. package/contracts/Math.sol/Math.json +1 -1
  25. package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -1
  26. package/contracts/NonceManager.sol/NonceManager.json +1 -1
  27. package/contracts/Panic.sol/Panic.json +1 -1
  28. package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -0
  29. package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -1
  30. package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -1
  31. package/contracts/SafeCast.sol/SafeCast.json +1 -1
  32. package/contracts/SenderCreator.sol/SenderCreator.json +1 -1
  33. package/contracts/ShortStrings.sol/ShortStrings.json +1 -1
  34. package/contracts/SignedMath.sol/SignedMath.json +1 -1
  35. package/contracts/StakeManager.sol/StakeManager.json +1 -1
  36. package/contracts/StorageSlot.sol/StorageSlot.json +1 -1
  37. package/contracts/Strings.sol/Strings.json +1 -1
  38. package/contracts/TransientSlot.sol/TransientSlot.json +1 -1
  39. package/contracts/UserOperation.sol/UserOperationLib.json +1 -1
  40. package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -1
  41. package/contracts/build-info/4a223f6420e18feb.json +1 -0
  42. package/contracts/build-info/ad2dc60de86c0e4f.json +1 -0
  43. package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
  44. package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
  45. package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
  46. package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
  47. package/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
  48. package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
  49. package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
  50. package/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
  51. package/esm/cli/config/bundler.d.ts +440 -416
  52. package/esm/cli/config/bundler.js +12 -2
  53. package/esm/cli/config/bundler.js.map +1 -1
  54. package/esm/cli/config/options.js +27 -4
  55. package/esm/cli/config/options.js.map +1 -1
  56. package/esm/cli/deploySimulationsContract.d.ts +2 -0
  57. package/esm/cli/deploySimulationsContract.js +56 -25
  58. package/esm/cli/deploySimulationsContract.js.map +1 -1
  59. package/esm/cli/handler.js +18 -6
  60. package/esm/cli/handler.js.map +1 -1
  61. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -0
  62. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -0
  63. package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -0
  64. package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -0
  65. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -0
  66. package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -0
  67. package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -0
  68. package/esm/createConfig.d.ts +2 -1
  69. package/esm/createConfig.js +2 -0
  70. package/esm/createConfig.js.map +1 -1
  71. package/esm/executor/executor.d.ts +10 -4
  72. package/esm/executor/executor.js +109 -55
  73. package/esm/executor/executor.js.map +1 -1
  74. package/esm/executor/executorManager.d.ts +8 -1
  75. package/esm/executor/executorManager.js +75 -76
  76. package/esm/executor/executorManager.js.map +1 -1
  77. package/esm/executor/filterOpsAndEstimateGas.d.ts +25 -0
  78. package/esm/executor/filterOpsAndEstimateGas.js +251 -0
  79. package/esm/executor/filterOpsAndEstimateGas.js.map +1 -0
  80. package/esm/executor/utils.js +1 -1
  81. package/esm/executor/utils.js.map +1 -1
  82. package/esm/mempool/mempool.js +15 -4
  83. package/esm/mempool/mempool.js.map +1 -1
  84. package/esm/rpc/estimation/gasEstimationsV06.js +12 -4
  85. package/esm/rpc/estimation/gasEstimationsV06.js.map +1 -1
  86. package/esm/rpc/estimation/gasEstimationsV07.d.ts +1 -1
  87. package/esm/rpc/estimation/gasEstimationsV07.js +26 -23
  88. package/esm/rpc/estimation/gasEstimationsV07.js.map +1 -1
  89. package/esm/rpc/methods/pimlico_sendUserOperationNow.js +14 -4
  90. package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
  91. package/esm/rpc/validation/SafeValidator.js +17 -9
  92. package/esm/rpc/validation/SafeValidator.js.map +1 -1
  93. package/esm/types/contracts/EntryPointSimulationsV6.d.ts +0 -1
  94. package/esm/types/contracts/EntryPointSimulationsV6.js +0 -2
  95. package/esm/types/contracts/EntryPointSimulationsV6.js.map +1 -1
  96. package/esm/types/contracts/PimlicoSimulations.d.ts +284 -0
  97. package/esm/types/contracts/PimlicoSimulations.js +368 -0
  98. package/esm/types/contracts/PimlicoSimulations.js.map +1 -0
  99. package/esm/types/contracts/index.d.ts +1 -1
  100. package/esm/types/contracts/index.js +1 -1
  101. package/esm/types/contracts/index.js.map +1 -1
  102. package/esm/types/mempool.d.ts +11 -7
  103. package/esm/types/mempool.js.map +1 -1
  104. package/esm/utils/eip7702.d.ts +1 -1
  105. package/esm/utils/eip7702.js +3 -0
  106. package/esm/utils/eip7702.js.map +1 -1
  107. package/esm/utils/entryPointOverrides.d.ts +16 -0
  108. package/esm/utils/entryPointOverrides.js +64 -0
  109. package/esm/utils/entryPointOverrides.js.map +1 -0
  110. package/esm/utils/helpers.d.ts +1 -0
  111. package/esm/utils/helpers.js +4 -0
  112. package/esm/utils/helpers.js.map +1 -1
  113. package/esm/utils/validation.d.ts +5 -0
  114. package/esm/utils/validation.js +17 -7
  115. package/esm/utils/validation.js.map +1 -1
  116. package/package.json +2 -2
  117. package/contracts/EntryPointCodeOverride.sol/EntryPointCodeOverride.json +0 -1
  118. package/contracts/PimlicoEntryPointSimulationsV7.sol/PimlicoEntryPointSimulationsV7.json +0 -1
  119. package/contracts/PimlicoEntryPointSimulationsV8.sol/PimlicoEntryPointSimulationsV8.json +0 -1
  120. package/contracts/build-info/96c79d1c9e9e095f.json +0 -1
  121. package/contracts/build-info/b400ff92e5db9cf3.json +0 -1
  122. package/esm/contracts/PimlicoEntryPointSimulationsV7.sol/PimlicoEntryPointSimulationsV7.json +0 -1
  123. package/esm/contracts/PimlicoEntryPointSimulationsV8.sol/PimlicoEntryPointSimulationsV8.json +0 -1
  124. package/esm/executor/filterOpsAndEStimateGas.d.ts +0 -29
  125. package/esm/executor/filterOpsAndEStimateGas.js +0 -198
  126. package/esm/executor/filterOpsAndEStimateGas.js.map +0 -1
  127. package/esm/types/contracts/PimlicoEntryPointSimulations.d.ts +0 -25
  128. package/esm/types/contracts/PimlicoEntryPointSimulations.js +0 -39
  129. package/esm/types/contracts/PimlicoEntryPointSimulations.js.map +0 -1
@@ -0,0 +1 @@
1
+ { "abi": [{ "type": "constructor", "inputs": [], "stateMutability": "nonpayable" }, { "type": "function", "name": "filterOps06", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct UserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "callGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "verificationGasLimit", "type": "uint256", "internalType": "uint256" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "maxPriorityFeePerGas", "type": "uint256", "internalType": "uint256" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct PimlicoSimulations.FilterOpsResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "balanceChange", "type": "uint256", "internalType": "uint256" }, { "name": "rejectedUserOps", "type": "tuple[]", "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "components": [{ "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "filterOps07", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct PimlicoSimulations.FilterOpsResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "balanceChange", "type": "uint256", "internalType": "uint256" }, { "name": "rejectedUserOps", "type": "tuple[]", "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "components": [{ "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "filterOps08", "inputs": [{ "name": "userOps", "type": "tuple[]", "internalType": "struct PackedUserOperation[]", "components": [{ "name": "sender", "type": "address", "internalType": "address" }, { "name": "nonce", "type": "uint256", "internalType": "uint256" }, { "name": "initCode", "type": "bytes", "internalType": "bytes" }, { "name": "callData", "type": "bytes", "internalType": "bytes" }, { "name": "accountGasLimits", "type": "bytes32", "internalType": "bytes32" }, { "name": "preVerificationGas", "type": "uint256", "internalType": "uint256" }, { "name": "gasFees", "type": "bytes32", "internalType": "bytes32" }, { "name": "paymasterAndData", "type": "bytes", "internalType": "bytes" }, { "name": "signature", "type": "bytes", "internalType": "bytes" }] }, { "name": "beneficiary", "type": "address", "internalType": "address payable" }, { "name": "entryPoint", "type": "address", "internalType": "contract IEntryPoint" }], "outputs": [{ "name": "", "type": "tuple", "internalType": "struct PimlicoSimulations.FilterOpsResult", "components": [{ "name": "gasUsed", "type": "uint256", "internalType": "uint256" }, { "name": "balanceChange", "type": "uint256", "internalType": "uint256" }, { "name": "rejectedUserOps", "type": "tuple[]", "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "components": [{ "name": "userOpHash", "type": "bytes32", "internalType": "bytes32" }, { "name": "revertReason", "type": "bytes", "internalType": "bytes" }] }] }], "stateMutability": "nonpayable" }, { "type": "function", "name": "simulateEntryPoint", "inputs": [{ "name": "entryPointSimulation", "type": "address", "internalType": "address" }, { "name": "entryPoint", "type": "address", "internalType": "address payable" }, { "name": "data", "type": "bytes[]", "internalType": "bytes[]" }], "outputs": [{ "name": "", "type": "bytes[]", "internalType": "bytes[]" }], "stateMutability": "nonpayable" }, { "type": "event", "name": "PimlicoSimulationDeployed", "inputs": [], "anonymous": false }], "bytecode": { "object": "0x60808060405234603a577f20d4cb4d83077ae7f93cbc84f032f6918d99772c5bb321c4333007d83641ab7e600080a161198d90816100408239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c8063557ce2e314610fcc578063861d9d5914610d02578063959c4cb71461065e5763fccb5ff61461004857600080fd5b346104bf5760603660031901126104bf5760043567ffffffffffffffff81116104bf57610079903690600401611384565b610081611217565b90604435926001600160a01b0384168094036104bf5761009f611479565b506100a86115ad565b805190680100000000000000008211610648576000548260005580831061054d575b50602001600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5636000915b83831061052f5750600095604095879560209550935091506001600160a01b0316845b828110610154576101508888888151926101338461122d565b8352602083015261014261181a565b8183015251918291826113b5565b0390f35b8651610160888261129f565b6001815260005b8681106104c4575061017a828587611934565b610120813603126104bf5788519061019182611282565b61019a81611203565b8252602081013560208301528981013567ffffffffffffffff81116104bf576101c690369083016112f5565b8a830152606081013567ffffffffffffffff81116104bf576101eb90369083016112f5565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff81116104bf5761022f90369083016112f5565b60e08301526101008101359067ffffffffffffffff82116104bf57610256913691016112f5565b61010082015261026582611442565b5261026f81611442565b5082315a918b3b156104bf57898c9181519283917f765e827f00000000000000000000000000000000000000000000000000000000835260448301846004850152815180915260648401602060648360051b87010193019160005b818110610404575050505060008094508380928b602483015203925af190816103f3575b506103c5575050610348610300611792565b602061030d848789611934565b8c8b5180809681947f22cdde4c00000000000000000000000000000000000000000000000000000000835286600484015260248301906114ed565b03915afa9182156103ba57600092610382575b506001929161037c918a519161037083611249565b825260208201526117c2565b0161011a565b90916020823d82116103b2575b8161039c6020938361129f565b810103126103af5750519061037c61035b565b80fd5b3d915061038f565b89513d6000823e3d90fd5b966103e1600193986103e76103ed949c6103e15a89319f611778565b90611785565b9b611778565b9561037c565b60006103fe9161129f565b386102ee565b9295509260206104ab600193969882936063198c82030189526101006104996104696104578d51956001600160a01b0387511686528887015189870152610120818801519187015261012086019061135f565b6060860151858203606087015261135f565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e086015261135f565b9201519061010081840391015261135f565b960194019101908f959391928795936102ca565b600080fd5b602090899896999a939a9792949597516104dd81611282565b6000815260008382015260608a82015260608082015260006080820152600060a0820152600060c0820152606060e0820152606061010082015282828701015201989198979496979593929095610167565b60026020826105416001945186611646565b019201920191906100f7565b6001600160ff1b0381168103610632576001600160ff1b0383168303610632576000805260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b8181106105ca57506100ca565b60029060008155600181016105df81546115f5565b90816105ee575b5050016105bd565b81601f600093116001146106065750555b38806105e6565b8183526020832061062291601f0160051c81019060010161162f565b80825281602081209155556105ff565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b346104bf5760603660031901126104bf5760043567ffffffffffffffff81116104bf5761068f903690600401611384565b610697611217565b90604435926001600160a01b0384168094036104bf576106b5611479565b506106be6115ad565b8051906801000000000000000082116106485760005482600055808310610c1d575b50602001600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5636000915b838310610bff5750600095604095879560209550935091506001600160a01b0316845b828110610749576101508888888151926101338461122d565b8651610755888261129f565b6001815260005b868110610b84575061076f828587611755565b610160813603126104bf5788519061078682611265565b61078f81611203565b8252602081013560208301528981013567ffffffffffffffff81116104bf576107bb90369083016112f5565b8a830152606081013567ffffffffffffffff81116104bf576107e090369083016112f5565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e083015261010081013561010083015261012081013567ffffffffffffffff81116104bf5761083b90369083016112f5565b6101208301526101408101359067ffffffffffffffff82116104bf57610863913691016112f5565b61014082015261087282611442565b5261087c81611442565b5082315a918b3b156104bf57898c9181519283917f1fad948c00000000000000000000000000000000000000000000000000000000835260448301846004850152815180915260648401602060648360051b87010193019160005b818110610ac3575050505060008094508380928b602483015203925af19081610ab2575b50610a905750506109b88460206109998c6109868c610a2d610926898c610920611792565b99611755565b610a1a610a0e84519a8b98899788977fa61935310000000000000000000000000000000000000000000000000000000089528c60048a01526001600160a01b0361096f88611203565b1660248a01528c87013560448a015286018661149a565b61016060648a01526101848901916114cc565b6109a6606086018661149a565b8883036023190160848a0152906114cc565b608084013560a487015260a084013560c487015260c084013560e487015260e08401356101048701526101008401356101248701526109fb61012085018561149a565b87830360231901610144890152906114cc565b9161014081019061149a565b84830360231901610164860152906114cc565b03915afa9182156103ba57600092610a5b575b5060019291610a55918a519161037083611249565b01610730565b90916020823d8211610a88575b81610a756020938361129f565b810103126103af57505190610a55610a40565b3d9150610a68565b966103e1600193986103e7610aac949c6103e15a89319f611778565b95610a55565b6000610abd9161129f565b8c6108fb565b929550926020610b70600193969882936063198c8203018952610140610b5e610b166104578d51956001600160a01b0387511686528887015189870152610160818801519187015261016086019061135f565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e085015261010085015161010085015261012085015184820361012086015261135f565b9201519061014081840391015261135f565b960194019101908f959391928795936108d7565b602090899896999a939a979294959751610b9d81611265565b6000815260008382015260608a82015260608082015260006080820152600060a0820152600060c0820152600060e08201526000610100820152606061012082015260606101408201528282870101520198919897949697959392909561075c565b6002602082610c116001945186611646565b0192019201919061070d565b6001600160ff1b0381168103610632576001600160ff1b0383168303610632576000805260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b818110610c9a57506106e0565b6002906000815560018101610caf81546115f5565b9081610cbe575b505001610c8d565b81601f60009311600114610cd65750555b8980610cb6565b81835260208320610cf291601f0160051c81019060010161162f565b8082528160208120915555610ccf565b346104bf5760603660031901126104bf5760043567ffffffffffffffff81116104bf57610d33903690600401611384565b90610d3c611217565b604435906001600160a01b0382168092036104bf57929190610d5c611479565b506040519384927ffccb5ff6000000000000000000000000000000000000000000000000000000008452846064850160606004870152526084840160848660051b860101958260009061011e1981360301935b838310610f8c5788600081808d8c6001600160a01b038d1660248401526044830152038183305af1908115610f8057600091610df4575b6040518061015084826113b5565b3d8083833e610e03818361129f565b810190602081830312610f7c5780519067ffffffffffffffff8211610f74570190606082820312610f7c5760405191610e3b8361122d565b805183526020810151602084015260408101519067ffffffffffffffff8211610f78570181601f82011215610f74578051610e75816112c1565b92610e83604051948561129f565b81845260208085019260051b84010192818411610f705760208101925b848410610ebb57505050505060408201529050610150610de6565b835167ffffffffffffffff8111610f6c5782016040818503601f190112610f6c5760405190610ee982611249565b60208101518252604081015167ffffffffffffffff8111610f685760209101019184601f84011215610f6457825191610f21836112d9565b610f2e604051918261129f565b8381528660208587010111610f6057610f5160209594869586808501910161133c565b83820152815201930192610ea0565b8b80fd5b8980fd5b8a80fd5b8880fd5b8680fd5b8380fd5b8480fd5b8280fd5b6040513d6000823e3d90fd5b9193959697509193976083198a82030182528835868112156104bf576020610fb9600193868394016114ed565b9a01920193019093918997969593610daf565b346104bf5760603660031901126104bf576004356001600160a01b0381168091036104bf57610ff9611217565b60443567ffffffffffffffff81116104bf57366023820112156104bf578060040135611024816112c1565b91611032604051938461129f565b8183526024602084019260051b820101903682116104bf5760248101925b8284106111d35750505050805192611067846112c1565b93611075604051958661129f565b808552611084601f19916112c1565b0160005b8181106111c25750506001600160a01b0360009316925b825181101561115a5760019060606000806110ba8488611465565b51604051906111138261110560208201937f850aaf620000000000000000000000000000000000000000000000000000000085528b602484015260406044840152606483019061135f565b03601f19810184528361129f565b828a5a935193f11561113c575b61112a8288611465565b526111358187611465565b500161109f565b503d604051906020818301016040528082526000602083013e611120565b846040518091602082016020835281518091526040830190602060408260051b8601019301916000905b82821061119357505050500390f35b919360019193955060206111b28192603f198a8203018652885161135f565b9601920192018594939192611184565b806060602080938901015201611088565b833567ffffffffffffffff81116104bf576020916111f88392602436918701016112f5565b815201930192611050565b35906001600160a01b03821682036104bf57565b602435906001600160a01b03821682036104bf57565b6060810190811067ffffffffffffffff82111761064857604052565b6040810190811067ffffffffffffffff82111761064857604052565b610160810190811067ffffffffffffffff82111761064857604052565b610120810190811067ffffffffffffffff82111761064857604052565b90601f8019910116810190811067ffffffffffffffff82111761064857604052565b67ffffffffffffffff81116106485760051b60200190565b67ffffffffffffffff811161064857601f01601f191660200190565b81601f820112156104bf5780359061130c826112d9565b9261131a604051948561129f565b828452602083830101116104bf57816000926020809301838601378301015290565b60005b83811061134f5750506000910152565b818101518382015260200161133f565b906020916113788151809281855285808601910161133c565b601f01601f1916010190565b9181601f840112156104bf5782359167ffffffffffffffff83116104bf576020808501948460051b0101116104bf57565b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b83831061140457505050505090565b9091929394602080611433600193609f198682030187526040838b51805184520151918185820152019061135f565b970193019301919392906113f5565b80511561144f5760200190565b634e487b7160e01b600052603260045260246000fd5b805182101561144f5760209160051b010190565b604051906114868261122d565b606060408360008152600060208201520152565b9035601e19823603018112156104bf57016020813591019167ffffffffffffffff82116104bf5781360383136104bf57565b908060209392818452848401376000828201840152601f01601f1916010190565b6115aa916001600160a01b0361150283611203565b1681526020820135602082015261159b61158f61155661153b611528604087018761149a565b61012060408801526101208701916114cc565b611548606087018761149a565b9086830360608801526114cc565b6080850135608085015260a085013560a085015260c085013560c085015261158160e086018661149a565b9085830360e08701526114cc565b9261010081019061149a565b916101008185039101526114cc565b90565b604051906115bc60208361129f565b600080835282815b8281106115d057505050565b6020906040516115df81611249565b60008152606083820152828285010152016115c4565b90600182811c92168015611625575b602083101461160f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611604565b81811061163a575050565b6000815560010161162f565b6001602091939293845181550192015191825167ffffffffffffffff81116106485761167282546115f5565b601f8111611718575b506020601f82116001146116b657819293946000926116ab575b50508160011b916000199060031b1c1916179055565b015190503880611695565b601f1982169083600052806000209160005b818110611700575095836001959697106116e7575b505050811b019055565b015160001960f88460031b161c191690553880806116dd565b9192602060018192868b0151815501940192016116c8565b61174590836000526020600020601f840160051c8101916020851061174b575b601f0160051c019061162f565b3861167b565b9091508190611738565b919081101561144f5760051b8101359061015e19813603018212156104bf570190565b9190820391821161063257565b9190820180921161063257565b3d156117bd573d906117a3826112d9565b916117b1604051938461129f565b82523d6000602084013e565b606090565b600054906801000000000000000082101561064857600182018060005582101561144f57600080526118189160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301611646565b565b60005490611827826112c1565b91611835604051938461129f565b8083526000808052907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602085015b8284106118715750505050565b60405161187d81611249565b82548152604051600184018054600091611896826115f5565b808552916001811690811561190f57506001146118d7575b505092600292826118c5602094600197038261129f565b83820152815201920193019290611864565b6000908152602081209092505b8183106118f9575050810160200182826118ae565b60018160209254838688010152019201916118e4565b60ff191660208087019190915292151560051b850190920192508491508390506118ae565b919081101561144f5760051b8101359061011e19813603018212156104bf57019056fea264697066735822122029b22dccc803bf9754079a3cc9dbd3d9c9bef7023bf182eb3d3e3637c92d485064736f6c634300081c0033", "sourceMap": "782:6791:19:-:0;;;;;;;2117:27;;;;782:6791;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x6080604052600436101561001257600080fd5b60003560e01c8063557ce2e314610fcc578063861d9d5914610d02578063959c4cb71461065e5763fccb5ff61461004857600080fd5b346104bf5760603660031901126104bf5760043567ffffffffffffffff81116104bf57610079903690600401611384565b610081611217565b90604435926001600160a01b0384168094036104bf5761009f611479565b506100a86115ad565b805190680100000000000000008211610648576000548260005580831061054d575b50602001600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5636000915b83831061052f5750600095604095879560209550935091506001600160a01b0316845b828110610154576101508888888151926101338461122d565b8352602083015261014261181a565b8183015251918291826113b5565b0390f35b8651610160888261129f565b6001815260005b8681106104c4575061017a828587611934565b610120813603126104bf5788519061019182611282565b61019a81611203565b8252602081013560208301528981013567ffffffffffffffff81116104bf576101c690369083016112f5565b8a830152606081013567ffffffffffffffff81116104bf576101eb90369083016112f5565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013567ffffffffffffffff81116104bf5761022f90369083016112f5565b60e08301526101008101359067ffffffffffffffff82116104bf57610256913691016112f5565b61010082015261026582611442565b5261026f81611442565b5082315a918b3b156104bf57898c9181519283917f765e827f00000000000000000000000000000000000000000000000000000000835260448301846004850152815180915260648401602060648360051b87010193019160005b818110610404575050505060008094508380928b602483015203925af190816103f3575b506103c5575050610348610300611792565b602061030d848789611934565b8c8b5180809681947f22cdde4c00000000000000000000000000000000000000000000000000000000835286600484015260248301906114ed565b03915afa9182156103ba57600092610382575b506001929161037c918a519161037083611249565b825260208201526117c2565b0161011a565b90916020823d82116103b2575b8161039c6020938361129f565b810103126103af5750519061037c61035b565b80fd5b3d915061038f565b89513d6000823e3d90fd5b966103e1600193986103e76103ed949c6103e15a89319f611778565b90611785565b9b611778565b9561037c565b60006103fe9161129f565b386102ee565b9295509260206104ab600193969882936063198c82030189526101006104996104696104578d51956001600160a01b0387511686528887015189870152610120818801519187015261012086019061135f565b6060860151858203606087015261135f565b6080850151608085015260a085015160a085015260c085015160c085015260e085015184820360e086015261135f565b9201519061010081840391015261135f565b960194019101908f959391928795936102ca565b600080fd5b602090899896999a939a9792949597516104dd81611282565b6000815260008382015260608a82015260608082015260006080820152600060a0820152600060c0820152606060e0820152606061010082015282828701015201989198979496979593929095610167565b60026020826105416001945186611646565b019201920191906100f7565b6001600160ff1b0381168103610632576001600160ff1b0383168303610632576000805260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b8181106105ca57506100ca565b60029060008155600181016105df81546115f5565b90816105ee575b5050016105bd565b81601f600093116001146106065750555b38806105e6565b8183526020832061062291601f0160051c81019060010161162f565b80825281602081209155556105ff565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b346104bf5760603660031901126104bf5760043567ffffffffffffffff81116104bf5761068f903690600401611384565b610697611217565b90604435926001600160a01b0384168094036104bf576106b5611479565b506106be6115ad565b8051906801000000000000000082116106485760005482600055808310610c1d575b50602001600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5636000915b838310610bff5750600095604095879560209550935091506001600160a01b0316845b828110610749576101508888888151926101338461122d565b8651610755888261129f565b6001815260005b868110610b84575061076f828587611755565b610160813603126104bf5788519061078682611265565b61078f81611203565b8252602081013560208301528981013567ffffffffffffffff81116104bf576107bb90369083016112f5565b8a830152606081013567ffffffffffffffff81116104bf576107e090369083016112f5565b60608301526080810135608083015260a081013560a083015260c081013560c083015260e081013560e083015261010081013561010083015261012081013567ffffffffffffffff81116104bf5761083b90369083016112f5565b6101208301526101408101359067ffffffffffffffff82116104bf57610863913691016112f5565b61014082015261087282611442565b5261087c81611442565b5082315a918b3b156104bf57898c9181519283917f1fad948c00000000000000000000000000000000000000000000000000000000835260448301846004850152815180915260648401602060648360051b87010193019160005b818110610ac3575050505060008094508380928b602483015203925af19081610ab2575b50610a905750506109b88460206109998c6109868c610a2d610926898c610920611792565b99611755565b610a1a610a0e84519a8b98899788977fa61935310000000000000000000000000000000000000000000000000000000089528c60048a01526001600160a01b0361096f88611203565b1660248a01528c87013560448a015286018661149a565b61016060648a01526101848901916114cc565b6109a6606086018661149a565b8883036023190160848a0152906114cc565b608084013560a487015260a084013560c487015260c084013560e487015260e08401356101048701526101008401356101248701526109fb61012085018561149a565b87830360231901610144890152906114cc565b9161014081019061149a565b84830360231901610164860152906114cc565b03915afa9182156103ba57600092610a5b575b5060019291610a55918a519161037083611249565b01610730565b90916020823d8211610a88575b81610a756020938361129f565b810103126103af57505190610a55610a40565b3d9150610a68565b966103e1600193986103e7610aac949c6103e15a89319f611778565b95610a55565b6000610abd9161129f565b8c6108fb565b929550926020610b70600193969882936063198c8203018952610140610b5e610b166104578d51956001600160a01b0387511686528887015189870152610160818801519187015261016086019061135f565b6080850151608085015260a085015160a085015260c085015160c085015260e085015160e085015261010085015161010085015261012085015184820361012086015261135f565b9201519061014081840391015261135f565b960194019101908f959391928795936108d7565b602090899896999a939a979294959751610b9d81611265565b6000815260008382015260608a82015260608082015260006080820152600060a0820152600060c0820152600060e08201526000610100820152606061012082015260606101408201528282870101520198919897949697959392909561075c565b6002602082610c116001945186611646565b0192019201919061070d565b6001600160ff1b0381168103610632576001600160ff1b0383168303610632576000805260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563018260011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563015b818110610c9a57506106e0565b6002906000815560018101610caf81546115f5565b9081610cbe575b505001610c8d565b81601f60009311600114610cd65750555b8980610cb6565b81835260208320610cf291601f0160051c81019060010161162f565b8082528160208120915555610ccf565b346104bf5760603660031901126104bf5760043567ffffffffffffffff81116104bf57610d33903690600401611384565b90610d3c611217565b604435906001600160a01b0382168092036104bf57929190610d5c611479565b506040519384927ffccb5ff6000000000000000000000000000000000000000000000000000000008452846064850160606004870152526084840160848660051b860101958260009061011e1981360301935b838310610f8c5788600081808d8c6001600160a01b038d1660248401526044830152038183305af1908115610f8057600091610df4575b6040518061015084826113b5565b3d8083833e610e03818361129f565b810190602081830312610f7c5780519067ffffffffffffffff8211610f74570190606082820312610f7c5760405191610e3b8361122d565b805183526020810151602084015260408101519067ffffffffffffffff8211610f78570181601f82011215610f74578051610e75816112c1565b92610e83604051948561129f565b81845260208085019260051b84010192818411610f705760208101925b848410610ebb57505050505060408201529050610150610de6565b835167ffffffffffffffff8111610f6c5782016040818503601f190112610f6c5760405190610ee982611249565b60208101518252604081015167ffffffffffffffff8111610f685760209101019184601f84011215610f6457825191610f21836112d9565b610f2e604051918261129f565b8381528660208587010111610f6057610f5160209594869586808501910161133c565b83820152815201930192610ea0565b8b80fd5b8980fd5b8a80fd5b8880fd5b8680fd5b8380fd5b8480fd5b8280fd5b6040513d6000823e3d90fd5b9193959697509193976083198a82030182528835868112156104bf576020610fb9600193868394016114ed565b9a01920193019093918997969593610daf565b346104bf5760603660031901126104bf576004356001600160a01b0381168091036104bf57610ff9611217565b60443567ffffffffffffffff81116104bf57366023820112156104bf578060040135611024816112c1565b91611032604051938461129f565b8183526024602084019260051b820101903682116104bf5760248101925b8284106111d35750505050805192611067846112c1565b93611075604051958661129f565b808552611084601f19916112c1565b0160005b8181106111c25750506001600160a01b0360009316925b825181101561115a5760019060606000806110ba8488611465565b51604051906111138261110560208201937f850aaf620000000000000000000000000000000000000000000000000000000085528b602484015260406044840152606483019061135f565b03601f19810184528361129f565b828a5a935193f11561113c575b61112a8288611465565b526111358187611465565b500161109f565b503d604051906020818301016040528082526000602083013e611120565b846040518091602082016020835281518091526040830190602060408260051b8601019301916000905b82821061119357505050500390f35b919360019193955060206111b28192603f198a8203018652885161135f565b9601920192018594939192611184565b806060602080938901015201611088565b833567ffffffffffffffff81116104bf576020916111f88392602436918701016112f5565b815201930192611050565b35906001600160a01b03821682036104bf57565b602435906001600160a01b03821682036104bf57565b6060810190811067ffffffffffffffff82111761064857604052565b6040810190811067ffffffffffffffff82111761064857604052565b610160810190811067ffffffffffffffff82111761064857604052565b610120810190811067ffffffffffffffff82111761064857604052565b90601f8019910116810190811067ffffffffffffffff82111761064857604052565b67ffffffffffffffff81116106485760051b60200190565b67ffffffffffffffff811161064857601f01601f191660200190565b81601f820112156104bf5780359061130c826112d9565b9261131a604051948561129f565b828452602083830101116104bf57816000926020809301838601378301015290565b60005b83811061134f5750506000910152565b818101518382015260200161133f565b906020916113788151809281855285808601910161133c565b601f01601f1916010190565b9181601f840112156104bf5782359167ffffffffffffffff83116104bf576020808501948460051b0101116104bf57565b602081526040608082019280516020840152602081015182840152015191606080830152825180915260a0820191602060a08360051b8301019401926000915b83831061140457505050505090565b9091929394602080611433600193609f198682030187526040838b51805184520151918185820152019061135f565b970193019301919392906113f5565b80511561144f5760200190565b634e487b7160e01b600052603260045260246000fd5b805182101561144f5760209160051b010190565b604051906114868261122d565b606060408360008152600060208201520152565b9035601e19823603018112156104bf57016020813591019167ffffffffffffffff82116104bf5781360383136104bf57565b908060209392818452848401376000828201840152601f01601f1916010190565b6115aa916001600160a01b0361150283611203565b1681526020820135602082015261159b61158f61155661153b611528604087018761149a565b61012060408801526101208701916114cc565b611548606087018761149a565b9086830360608801526114cc565b6080850135608085015260a085013560a085015260c085013560c085015261158160e086018661149a565b9085830360e08701526114cc565b9261010081019061149a565b916101008185039101526114cc565b90565b604051906115bc60208361129f565b600080835282815b8281106115d057505050565b6020906040516115df81611249565b60008152606083820152828285010152016115c4565b90600182811c92168015611625575b602083101461160f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611604565b81811061163a575050565b6000815560010161162f565b6001602091939293845181550192015191825167ffffffffffffffff81116106485761167282546115f5565b601f8111611718575b506020601f82116001146116b657819293946000926116ab575b50508160011b916000199060031b1c1916179055565b015190503880611695565b601f1982169083600052806000209160005b818110611700575095836001959697106116e7575b505050811b019055565b015160001960f88460031b161c191690553880806116dd565b9192602060018192868b0151815501940192016116c8565b61174590836000526020600020601f840160051c8101916020851061174b575b601f0160051c019061162f565b3861167b565b9091508190611738565b919081101561144f5760051b8101359061015e19813603018212156104bf570190565b9190820391821161063257565b9190820180921161063257565b3d156117bd573d906117a3826112d9565b916117b1604051938461129f565b82523d6000602084013e565b606090565b600054906801000000000000000082101561064857600182018060005582101561144f57600080526118189160011b7f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56301611646565b565b60005490611827826112c1565b91611835604051938461129f565b8083526000808052907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563602085015b8284106118715750505050565b60405161187d81611249565b82548152604051600184018054600091611896826115f5565b808552916001811690811561190f57506001146118d7575b505092600292826118c5602094600197038261129f565b83820152815201920193019290611864565b6000908152602081209092505b8183106118f9575050810160200182826118ae565b60018160209254838688010152019201916118e4565b60ff191660208087019190915292151560051b850190920192508491508390506118ae565b919081101561144f5760051b8101359061011e19813603018212156104bf57019056fea264697066735822122029b22dccc803bf9754079a3cc9dbd3d9c9bef7023bf182eb3d3e3637c92d485064736f6c634300081c0033", "sourceMap": "782:6791:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;782:6791:19;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;782:6791:19;;;;;;;;;:::i;:::-;;4341:23;;:::i;:::-;782:6791;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;782:6791:19;;;;;;;;-1:-1:-1;4562:13:19;-1:-1:-1;782:6791:19;-1:-1:-1;;;;;;782:6791:19;;4577:18;;;;;;782:6791;;;;;;;;;;:::i;:::-;;;;5609:155;;782:6791;;;:::i;:::-;5609:155;;;782:6791;;;;;;;:::i;:::-;;;;4597:3;782:6791;;;;;;:::i;:::-;;;;;;;;;;;4797:10;;;;;;:::i;:::-;782:6791;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;4778:29;;;:::i;:::-;;;;;:::i;:::-;;4846:19;;4899:9;4927:48;;;;;;782:6791;;;;;4927:48;;;782:6791;4927:48;;782:6791;;;4927:48;782:6791;4927:48;;782:6791;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4927:48;;;;;;;;782:6791;-1:-1:-1;4923:659:19;;5280:302;;782:6791;5280:302;;:::i;:::-;782:6791;5448:10;;;;;:::i;:::-;782:6791;;;5423:36;;;;;782:6791;5423:36;;;782:6791;5423:36;;782:6791;;;;;;:::i;:::-;5423:36;;;;;;;;;782:6791;5423:36;;;4923:659;782:6791;;;;5477:90;782:6791;;;;;;;:::i;:::-;;;;5498:68;;782:6791;5477:90;:::i;:::-;782:6791;4562:13;;5423:36;;;782:6791;5423:36;;;;;;;;;782:6791;5423:36;;;:::i;:::-;;;782:6791;;;;-1:-1:-1;782:6791:19;;5477:90;5423:36;;782:6791;;;5423:36;;;-1:-1:-1;5423:36:19;;;782:6791;;;;;;;;;4923:659;5013:9;5236:28;782:6791;5013:9;;5160:36;5214:50;5013:9;;5176:20;5013:9;5063:19;;5176:20;;:::i;:::-;5160:36;;:::i;:::-;5236:28;;:::i;5214:50::-;4923:659;;;4927:48;782:6791;4927:48;;;:::i;:::-;;;;782:6791;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;782:6791:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4927:48;782:6791;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;782:6791:19;;;;;;-1:-1:-1;;;;;782:6791:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;782:6791:19;;;;;;;;;-1:-1:-1;;;782:6791:19;;;;;;;;;;;;;;-1:-1:-1;;782:6791:19;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;782:6791:19;;;;;;;;;:::i;:::-;;6153:23;;:::i;:::-;782:6791;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;782:6791:19;;;;;;;;-1:-1:-1;6374:13:19;-1:-1:-1;782:6791:19;-1:-1:-1;;;;;;782:6791:19;;6389:18;;;;;;782:6791;;;;;;;;;;:::i;6409:3::-;782:6791;;;;;;:::i;:::-;;;;;;;;;;;6597:10;;;;;;:::i;:::-;782:6791;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6578:29;;;:::i;:::-;;;;;:::i;:::-;;6646:19;;6699:9;6727:48;;;;;;782:6791;;;;;6727:48;;;782:6791;6727:48;;782:6791;;;6727:48;782:6791;6727:48;;782:6791;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6727:48;;;;;;;;782:6791;-1:-1:-1;6723:659:19;;7080:302;;782:6791;7080:302;782:6791;;7080:302;782:6791;7080:302;782:6791;7248:10;7080:302;;;;:::i;:::-;7248:10;;:::i;:::-;782:6791;;;;7223:36;;;;;;;782:6791;7223:36;;;782:6791;7223:36;;782:6791;-1:-1:-1;;;;;782:6791:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;782:6791:19;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;782:6791:19;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;;782:6791:19;;;;;;;:::i;:::-;7223:36;;;;;;;;;782:6791;7223:36;;;6723:659;782:6791;;;;7277:90;782:6791;;;;;;;:::i;7277:90::-;782:6791;6374:13;;7223:36;;;782:6791;7223:36;;;;;;;;;782:6791;7223:36;;;:::i;:::-;;;782:6791;;;;-1:-1:-1;782:6791:19;;7277:90;7223:36;;;;;-1:-1:-1;7223:36:19;;6723:659;6813:9;7036:28;782:6791;6813:9;;6960:36;7014:50;6813:9;;6976:20;6813:9;6863:19;;6976:20;;:::i;7014:50::-;6723:659;;;6727:48;782:6791;6727:48;;;:::i;:::-;;;;782:6791;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;782:6791:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;782:6791:19;;;;;;-1:-1:-1;;;;;782:6791:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;782:6791:19;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;782:6791:19;;;;;;;;;;;;:::i;:::-;;;;3872:74;;;782:6791;3872:74;;782:6791;;;;;;3872:74;;782:6791;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;782:6791:19;;;;;;;;;;3872:74;:4;;;:74;;;;;;;782:6791;3872:74;;;782:6791;;;;;;;;:::i;3872:74::-;;;;;;;;;;:::i;:::-;;;782:6791;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;782:6791:19;;;;;-1:-1:-1;782:6791:19;3872:74;;782:6791;;;;;;;;;;;;;;-1:-1:-1;;782:6791:19;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3872:74;782:6791;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;782:6791:19;;;;;;-1:-1:-1;;;;;782:6791:19;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;2741:13;;-1:-1:-1;;;;;782:6791:19;;;2736:472;2773:3;782:6791;;2756:15;;;;;782:6791;2792:23;782:6791;;2956:7;;;;;:::i;:::-;;782:6791;;2869:95;;;782:6791;;2869:95;;;2892:40;2869:95;;;782:6791;2869:95;;782:6791;;;;;;;;;;;:::i;:::-;2869:95;782:6791;;2869:95;;;;;;:::i;:::-;3028:9;;;378:118:11;;;;3056:8:19;3052:101;;2773:3;3166:31;;;;:::i;:::-;;;;;;:::i;:::-;;782:6791;2741:13;;3052:101;1204:349:11;;782:6791:19;1204:349:11;;782:6791:19;1204:349:11;;;;782:6791:19;1204:349:11;;;;782:6791:19;;1204:349:11;;;3052:101:19;;2756:15;;782:6791;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;782:6791:19;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;782:6791:19;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;782:6791:19;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;782:6791:19;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;782:6791:19;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;782:6791:19;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;782:6791:19;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;782:6791:19;;-1:-1:-1;782:6791:19;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;782:6791:19;;;;;;;;-1:-1:-1;;782:6791:19;;;;:::o;:::-;;;-1:-1:-1;;;;;782:6791:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;782:6791:19;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;782:6791:19;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;782:6791:19;;;;;;;;;;;-1:-1:-1;782:6791:19;;-1:-1:-1;782:6791:19;;-1:-1:-1;782:6791:19;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;782:6791:19;;-1:-1:-1;782:6791:19;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;782:6791:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;782:6791:19;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;782:6791:19;;;;;;-1:-1:-1;;782:6791:19;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;782:6791:19;;;;;;;;;;;;;;;;;;;;-1:-1:-1;782:6791:19;;-1:-1:-1;782:6791:19;;-1:-1:-1;782:6791:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", "linkReferences": {} }, "methodIdentifiers": { "filterOps06((address,uint256,bytes,bytes,uint256,uint256,uint256,uint256,uint256,bytes,bytes)[],address,address)": "959c4cb7", "filterOps07((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)": "fccb5ff6", "filterOps08((address,uint256,bytes,bytes,bytes32,uint256,bytes32,bytes,bytes)[],address,address)": "861d9d59", "simulateEntryPoint(address,address,bytes[])": "557ce2e3" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"PimlicoSimulationDeployed\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"callGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"verificationGasLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPriorityFeePerGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct UserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps06\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps07\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"initCode\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"accountGasLimits\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"preVerificationGas\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"gasFees\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"paymasterAndData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct PackedUserOperation[]\",\"name\":\"userOps\",\"type\":\"tuple[]\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"contract IEntryPoint\",\"name\":\"entryPoint\",\"type\":\"address\"}],\"name\":\"filterOps08\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"balanceChange\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"userOpHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"revertReason\",\"type\":\"bytes\"}],\"internalType\":\"struct PimlicoSimulations.RejectedUserOp[]\",\"name\":\"rejectedUserOps\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PimlicoSimulations.FilterOpsResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"entryPointSimulation\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"entryPoint\",\"type\":\"address\"},{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"simulateEntryPoint\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Pimlico (https://github.com/pimlicolabs/alto)\",\"kind\":\"dev\",\"methods\":{},\"title\":\"PimlicoSimulations\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"An ERC-4337 EntryPoint simulation contract\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/PimlicoSimulations.sol\":\"PimlicoSimulations\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":@account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":@account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/\",\":@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/\",\":@test-utils/=lib/singleton-paymaster/test/utils/\",\":account-abstraction-v6/=lib/account-abstraction-v6/contracts/\",\":account-abstraction-v7/=lib/account-abstraction-v7/contracts/\",\":account-abstraction-v8/=lib/account-abstraction-v8/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/\",\":openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/\",\":openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/\",\":singleton-paymaster/=lib/singleton-paymaster/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"lib/account-abstraction-v6/contracts/core/Helpers.sol\":{\"keccak256\":\"0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746\",\"dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU\"]},\"lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b\",\"dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP\"]},\"lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf\",\"dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd\"]},\"lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2\",\"dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b\"]},\"lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3\",\"dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ\"]},\"lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol\":{\"keccak256\":\"0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c\",\"dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN\"]},\"lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155\",\"dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5\"]},\"lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9\",\"dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe\"]},\"lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3\",\"dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk\"]},\"lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00\",\"dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj\"]},\"lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be\",\"dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3\"]},\"lib/account-abstraction-v7/contracts/utils/Exec.sol\":{\"keccak256\":\"0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77\",\"dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ\"]},\"lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol\":{\"keccak256\":\"0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77\",\"dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT\"]},\"lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol\":{\"keccak256\":\"0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931\",\"dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87\"]},\"lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol\":{\"keccak256\":\"0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d\",\"dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX\"]},\"lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol\":{\"keccak256\":\"0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570\",\"dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w\"]},\"lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol\":{\"keccak256\":\"0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85\",\"dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz\"]},\"lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol\":{\"keccak256\":\"0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79\",\"dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK\"]},\"lib/solady/src/utils/LibBytes.sol\":{\"keccak256\":\"0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862\",\"dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT\"]},\"src/PimlicoSimulations.sol\":{\"keccak256\":\"0xbd9aecad68e7dd1675536bc396753c49edacaa6a3ff987f8f4288bec35e93abd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf450f4527f69e871bfbdcc9cfccf120b18b4847a0207a7e4703c7d0fba32e7\",\"dweb:/ipfs/QmUDsX6mYEmBgcQQ3Y7DgjQGz8874f6VruoazhivJ7c6P5\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.28+commit.7893614a" }, "language": "Solidity", "output": { "abi": [{ "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "type": "event", "name": "PimlicoSimulationDeployed", "anonymous": false }, { "inputs": [{ "internalType": "struct UserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "uint256", "name": "callGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "verificationGasLimit", "type": "uint256" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxFeePerGas", "type": "uint256" }, { "internalType": "uint256", "name": "maxPriorityFeePerGas", "type": "uint256" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "filterOps06", "outputs": [{ "internalType": "struct PimlicoSimulations.FilterOpsResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "uint256", "name": "balanceChange", "type": "uint256" }, { "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "name": "rejectedUserOps", "type": "tuple[]", "components": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "filterOps07", "outputs": [{ "internalType": "struct PimlicoSimulations.FilterOpsResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "uint256", "name": "balanceChange", "type": "uint256" }, { "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "name": "rejectedUserOps", "type": "tuple[]", "components": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }] }] }] }, { "inputs": [{ "internalType": "struct PackedUserOperation[]", "name": "userOps", "type": "tuple[]", "components": [{ "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "bytes", "name": "initCode", "type": "bytes" }, { "internalType": "bytes", "name": "callData", "type": "bytes" }, { "internalType": "bytes32", "name": "accountGasLimits", "type": "bytes32" }, { "internalType": "uint256", "name": "preVerificationGas", "type": "uint256" }, { "internalType": "bytes32", "name": "gasFees", "type": "bytes32" }, { "internalType": "bytes", "name": "paymasterAndData", "type": "bytes" }, { "internalType": "bytes", "name": "signature", "type": "bytes" }] }, { "internalType": "address payable", "name": "beneficiary", "type": "address" }, { "internalType": "contract IEntryPoint", "name": "entryPoint", "type": "address" }], "stateMutability": "nonpayable", "type": "function", "name": "filterOps08", "outputs": [{ "internalType": "struct PimlicoSimulations.FilterOpsResult", "name": "", "type": "tuple", "components": [{ "internalType": "uint256", "name": "gasUsed", "type": "uint256" }, { "internalType": "uint256", "name": "balanceChange", "type": "uint256" }, { "internalType": "struct PimlicoSimulations.RejectedUserOp[]", "name": "rejectedUserOps", "type": "tuple[]", "components": [{ "internalType": "bytes32", "name": "userOpHash", "type": "bytes32" }, { "internalType": "bytes", "name": "revertReason", "type": "bytes" }] }] }] }, { "inputs": [{ "internalType": "address", "name": "entryPointSimulation", "type": "address" }, { "internalType": "address payable", "name": "entryPoint", "type": "address" }, { "internalType": "bytes[]", "name": "data", "type": "bytes[]" }], "stateMutability": "nonpayable", "type": "function", "name": "simulateEntryPoint", "outputs": [{ "internalType": "bytes[]", "name": "", "type": "bytes[]" }] }], "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }, "settings": { "remappings": ["@account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "@account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "@account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "@openzeppelin-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "@openzeppelin-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "@openzeppelin-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "@openzeppelin/contracts/=lib/openzeppelin-contracts-v5.0.2/contracts/", "@test-aa-utils/=lib/singleton-paymaster/test/utils/account-abstraction/", "@test-utils/=lib/singleton-paymaster/test/utils/", "account-abstraction-v6/=lib/account-abstraction-v6/contracts/", "account-abstraction-v7/=lib/account-abstraction-v7/contracts/", "account-abstraction-v8/=lib/account-abstraction-v8/contracts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/openzeppelin-contracts-v5.0.0/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "halmos-cheatcodes/=lib/openzeppelin-contracts-v5.1.0/lib/halmos-cheatcodes/src/", "openzeppelin-contracts-v4.8.3/=lib/openzeppelin-contracts-v4.8.3/", "openzeppelin-contracts-v5.0.2/=lib/openzeppelin-contracts-v5.0.2/", "openzeppelin-contracts-v5.1.0/=lib/openzeppelin-contracts-v5.1.0/", "singleton-paymaster/=lib/singleton-paymaster/src/", "solady/=lib/solady/src/"], "optimizer": { "enabled": true, "runs": 1000 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "src/PimlicoSimulations.sol": "PimlicoSimulations" }, "evmVersion": "london", "libraries": {}, "viaIR": true }, "sources": { "lib/account-abstraction-v6/contracts/core/Helpers.sol": { "keccak256": "0x591c87519f7155d1909210276b77925ab2722a99b7b5d5649aecc36ebbdb045a", "urls": ["bzz-raw://69643e83f68e6a13d5075c7565bfce326673b0bd98c432033c4603ea84835746", "dweb:/ipfs/QmSwSzjYyV7qudi5vvsmzHMG2Z4YJZxX51RRXXVCLaNcEU"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IAggregator.sol": { "keccak256": "0x060e9ddb0152250c269ba0640dc5753834ac44cf182a2837d508c0c529cae26a", "urls": ["bzz-raw://20ed837bc5909c89ff1910246bf245a5dad6840aa939382e1694964eb7dbd37b", "dweb:/ipfs/QmTMybRq5yyghPDDs1ZCNAVB9sSJ4WHe6Q9mejuKPTAdNP"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x3a90bf308819ed125fa4202f880999caff8a8686633b8ddb79a30ca240d5b8f8", "urls": ["bzz-raw://d2d21cc92c2fdab2b58d21bc25d4cd0e8c284b922528a186b087b818d54bc6cf", "dweb:/ipfs/QmT1qrfuBjsv2rmRCDn8mgPXHp94hARJwzbcDuBLDTbFWd"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/INonceManager.sol": { "keccak256": "0x509871e6c63663cdcc3eba19920fe84e991f38b289b1377ac3c3a6d9f22d7e12", "urls": ["bzz-raw://00fe21b4349b24c50df60e1a705179293982bd9e7a32b78d4bac9620f89e7fe2", "dweb:/ipfs/QmSFFYGfUwQbVa6hASjU7YxTvgi2HkfrPr4X5oPHscHg8b"], "license": "GPL-3.0" }, "lib/account-abstraction-v6/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xd227b02888cd4ac68daebcdfd992ec00f9fff66fa3b3bb16f656cd582fa3480f", "urls": ["bzz-raw://b389da4714a138be63704a576a482505eab2855e263b38a93706395d8d42e7c3", "dweb:/ipfs/QmeeAZpdHwUXxqP8pxA7GNtoCGBmmH4FaqLLwScVKGxtxZ"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v6/contracts/interfaces/UserOperation.sol": { "keccak256": "0x61374003361059087fdcf17967a7bba052badeaf5c7f0ae689166f8aafd3a45c", "urls": ["bzz-raw://6ff83c59432e733bf6304dda27cd4b0f34401917dd535e2669cc842d2d26568c", "dweb:/ipfs/QmPJbHU5TAjHqUTZzAcicEeG2nknmwCN43L4EW9LHbknTN"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IAggregator.sol": { "keccak256": "0xf100d6fcc0c3b450b13e979b6a42c628c292a1bc340eccc2e7796b80e3975588", "urls": ["bzz-raw://192938b5b27234d35c8098a319e879363c79f750eea4d0e409dc889a8ce5b155", "dweb:/ipfs/QmURpaJFPqEtkKP2ngBsgZhAGN8wAWh5XQpYmCkiz4Urz5"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x1972a5fcb3a808b58c85af5741949ef6af11ab0debd3ae8c708171ae1ae0d0c4", "urls": ["bzz-raw://baa9837ae73b9e2362a47d42d081d7c0f3d8e878e5edb381117d94a6968949c9", "dweb:/ipfs/QmUmo6FUE7fv5z1WzW1YFjxp8PqaeN2JrEee9au59w3Xhe"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/INonceManager.sol": { "keccak256": "0xd575af0f6ebbd5f0b2933307d44cd7b4e03a69f4b817a67db5409bd3c89aeecb", "urls": ["bzz-raw://3b1e2dea9b05cfba9d13339ed16d96457dc861013cc4f3f35b71a80f82448db3", "dweb:/ipfs/QmVaGy5uGDMSiU2SzyokTjoHFyb39VVG5wtaM9KTnHyZSk"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xbe5ca9e7f254d031687419e7b96ef48c9c63e9398bbe992dc72ffc6dc14e0a04", "urls": ["bzz-raw://1fffec71c38627a26fabb423350148009579f092623fb02b471a12d973763a00", "dweb:/ipfs/QmRBi31QEYXHj3x1AnQ2jKa2eziZH1b9av396P3b4dw6bj"], "license": "GPL-3.0-only" }, "lib/account-abstraction-v7/contracts/interfaces/PackedUserOperation.sol": { "keccak256": "0x1129b46381db68eddbc5cb49e50664667b66b03c480453858e7b25eabe444359", "urls": ["bzz-raw://499a948aba60480dba6e25c763b8d918f1c246eb7a3302e04f493e080f3295be", "dweb:/ipfs/QmeRhhswf4NACcBKam2PyjpTP2ddSm648kah5kkQJsvwz3"], "license": "GPL-3.0" }, "lib/account-abstraction-v7/contracts/utils/Exec.sol": { "keccak256": "0x86b1b1cd11158dddb9d381040c57fdc643c74b5e4eed3e7e036f32452672ad74", "urls": ["bzz-raw://ad88663b6c76df73cf09a272cf333d038df7bb4c51281284b572bf9b46e1cd77", "dweb:/ipfs/QmVKxYF8avyPBtqejVhFCM2CuHsfpsCh7TsPqkBLtrgwJQ"], "license": "LGPL-3.0-only" }, "lib/account-abstraction-v8/contracts/interfaces/IAggregator.sol": { "keccak256": "0xdf580eafa015b81bde436d6a5468cc92b531ada84007cef885e923f6dfc5e8bf", "urls": ["bzz-raw://99f0060626568619ac94d750eb4c0888d92ca5775a6bd957fef9847843835b77", "dweb:/ipfs/QmXJer3D9sTkEj3mmUDqpdqfGpe46Rn9G22nGrfZdP2wAT"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/IEntryPoint.sol": { "keccak256": "0x3b0423737e810dd886183ed32cfed9b45edd315f5fb3e1076fc19f86791adc64", "urls": ["bzz-raw://c43081efaa2eda581b6249053281bb58cb0c4eeb6bf87efc55d95daaec2fc931", "dweb:/ipfs/QmXRN2JnyzWZNeFMHauTnDuc7jhxGY4ZkY37HTtjXKdC87"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/INonceManager.sol": { "keccak256": "0xee493ae200b8c675bdc0da66f7ac6bb883ecea33672d7d0a95526b9eecdedf87", "urls": ["bzz-raw://979784a0333ac4ef3cc53ab9323a4b7fa574d929bd511f0eed03d3b0370db22d", "dweb:/ipfs/QmeiciN5gs4upM6vfKvrRxWiDBUzMU4uJQRRkJajhim9gX"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/ISenderCreator.sol": { "keccak256": "0x677f651d733162b80d1af7901e4f36469e362737a8353d1d0cc7bb94489e4ba4", "urls": ["bzz-raw://d6905a80acd70b444ea230b5b582164cb99aaae518bf72c88f8292df31615570", "dweb:/ipfs/QmfTKTPwJYf9pmA3T5PE5cCG8GLLDrLaq3jQqMP3pVRL6w"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/IStakeManager.sol": { "keccak256": "0xe48e904fcac02295aad07fbfa1c1d449a74bf44c04e432afef6f34d1ef726ae0", "urls": ["bzz-raw://5882b635ea6f5da9ae411485975888431de571f85d4baf35e3db1a83c1f14b85", "dweb:/ipfs/QmVSTX36Byr48y8JBmz1hCTGAAyQdTYegQbsSqdRNuSQYz"], "license": "MIT" }, "lib/account-abstraction-v8/contracts/interfaces/PackedUserOperation.sol": { "keccak256": "0xb15188e25e45fe73097e279675b6c0beccbd4133ead2260f8f0c4ba840046800", "urls": ["bzz-raw://5d14c1edd1e95d37c26e54bb34305e2cc9dedc46eb75ec91caeb777678e8ea79", "dweb:/ipfs/QmcCL2syVtV7W3XvYx3si84MPkbEJKqEN8hjFNhAPoDDhK"], "license": "MIT" }, "lib/solady/src/utils/LibBytes.sol": { "keccak256": "0x905f1c122299888350964a3bdd3dccd4b969273389b8d869f9aacb6871ff199e", "urls": ["bzz-raw://b6cff3ef7090aa48f214b960f373a33c15878f80e617443a3a4d53f130bab862", "dweb:/ipfs/QmdMEpK6ZVxUesqSpurqS9UkDnm1kAnjUeJKLN6ZWPNJnT"], "license": "MIT" }, "src/PimlicoSimulations.sol": { "keccak256": "0xbd9aecad68e7dd1675536bc396753c49edacaa6a3ff987f8f4288bec35e93abd", "urls": ["bzz-raw://3cf450f4527f69e871bfbdcc9cfccf120b18b4847a0207a7e4703c7d0fba32e7", "dweb:/ipfs/QmUDsX6mYEmBgcQQ3Y7DgjQGz8874f6VruoazhivJ7c6P5"], "license": "MIT" } }, "version": 1 }, "id": 19 }
@@ -1,12 +1,13 @@
1
1
  import type { IOptions } from "./cli/index.js";
2
2
  import type { CamelCasedProperties } from "./cli/parseArgs.js";
3
3
  import type { Bindings, ChildLoggerOptions, Logger } from "pino";
4
- import type { Chain, PublicClient, Transport, WalletClient } from "viem";
4
+ import type { Address, Chain, PublicClient, Transport, WalletClient } from "viem";
5
5
  export type AltoConfig = Readonly<CamelCasedProperties<IOptions>> & {
6
6
  getLogger: <ChildCustomLevels extends string = never>(bindings: Bindings, options?: ChildLoggerOptions<ChildCustomLevels>) => Logger<ChildCustomLevels>;
7
7
  readonly publicClient: PublicClient<Transport, Chain>;
8
8
  readonly walletClient: WalletClient<Transport, Chain>;
9
9
  readonly chainId: number;
10
+ readonly utilityWalletAddress: Address;
10
11
  };
11
12
  export declare function createConfig(config: CamelCasedProperties<IOptions> & {
12
13
  logger: Logger;
@@ -3,6 +3,8 @@ export function createConfig(config) {
3
3
  return {
4
4
  ...rest,
5
5
  chainId: config.publicClient.chain.id,
6
+ utilityWalletAddress: config.utilityPrivateKey?.address ??
7
+ "0x4337000c2828F5260d8921fD25829F606b9E8680",
6
8
  getLogger: (bindings, options) => logger.child(bindings, options)
7
9
  };
8
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createConfig.js","sourceRoot":"","sources":["../createConfig.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,YAAY,CACxB,MAIC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IAElC,OAAO;QACH,GAAG,IAAI;QACP,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;QACrC,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;KACpE,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"createConfig.js","sourceRoot":"","sources":["../createConfig.ts"],"names":[],"mappings":"AAsBA,MAAM,UAAU,YAAY,CACxB,MAIC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;IAElC,OAAO;QACH,GAAG,IAAI;QACP,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;QACrC,oBAAoB,EAChB,MAAM,CAAC,iBAAiB,EAAE,OAAO;YACjC,4CAA4C;QAChD,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;KACpE,CAAA;AACL,CAAC"}
@@ -10,7 +10,6 @@ type HandleOpsTxParams = {
10
10
  account: Account;
11
11
  nonce: number;
12
12
  userOps: UserOpInfo[];
13
- isReplacementTx: boolean;
14
13
  entryPoint: Address;
15
14
  };
16
15
  type HandleOpsGasParams = {
@@ -47,16 +46,23 @@ export declare class Executor {
47
46
  eventManager: EventManager;
48
47
  });
49
48
  cancelOps(_entryPoint: Address, _ops: UserOperation[]): Promise<void>;
49
+ getBundleGasPrice({ bundle, networkGasPrice, networkBaseFee, totalBeneficiaryFees, bundleGasUsed }: {
50
+ bundle: UserOperationBundle;
51
+ networkGasPrice: GasPriceParameters;
52
+ networkBaseFee: bigint;
53
+ totalBeneficiaryFees: bigint;
54
+ bundleGasUsed: bigint;
55
+ }): Promise<GasPriceParameters>;
50
56
  sendHandleOpsTransaction({ txParam, gasOpts }: {
51
57
  txParam: HandleOpsTxParams;
52
58
  gasOpts: HandleOpsGasParams;
53
59
  }): Promise<`0x${string}`>;
54
- bundle({ executor, userOpBundle, nonce, gasPriceParams, isReplacementTx }: {
60
+ bundle({ executor, userOpBundle, networkGasPrice, networkBaseFee, nonce }: {
55
61
  executor: Account;
56
62
  userOpBundle: UserOperationBundle;
63
+ networkGasPrice: GasPriceParameters;
64
+ networkBaseFee: bigint;
57
65
  nonce: number;
58
- gasPriceParams: GasPriceParameters;
59
- isReplacementTx: boolean;
60
66
  }): Promise<BundleResult>;
61
67
  }
62
68
  export {};
@@ -1,8 +1,8 @@
1
- import { roundUpBigInt, maxBigInt, parseViemError, scaleBigIntByPercent } from "../utils/index.js";
1
+ import { roundUpBigInt, maxBigInt, parseViemError, scaleBigIntByPercent, minBigInt, jsonStringifyWithBigint } from "../utils/index.js";
2
2
  import * as sentry from "@sentry/node";
3
- import { IntrinsicGasTooLowError, NonceTooLowError, TransactionExecutionError, NonceTooHighError, BaseError } from "viem";
4
- import { calculateAA95GasFloor, encodeHandleOpsCalldata, getAuthorizationList, getUserOpHashes, isTransactionUnderpricedError } from "./utils.js";
5
- import { filterOpsAndEstimateGas } from "./filterOpsAndEStimateGas.js";
3
+ import { IntrinsicGasTooLowError, NonceTooLowError, TransactionExecutionError, NonceTooHighError, BaseError, FeeCapTooLowError, InsufficientFundsError } from "viem";
4
+ import { encodeHandleOpsCalldata, getAuthorizationList, getUserOpHashes, isTransactionUnderpricedError } from "./utils.js";
5
+ import { filterOpsAndEstimateGas } from "./filterOpsAndEstimateGas.js";
6
6
  export class Executor {
7
7
  config;
8
8
  logger;
@@ -25,9 +25,58 @@ export class Executor {
25
25
  cancelOps(_entryPoint, _ops) {
26
26
  throw new Error("Method not implemented.");
27
27
  }
28
+ async getBundleGasPrice({ bundle, networkGasPrice, networkBaseFee, totalBeneficiaryFees, bundleGasUsed }) {
29
+ const { bundlerInitialCommission, resubmitMultiplierCeiling, legacyTransactions, chainType, arbitrumGasBidMultiplier } = this.config;
30
+ // Arbtirum's sequencer orders based on first come first serve.
31
+ // Because of this, maxFee/maxPriorityFee is ignored and the bundler *always* pays the network's baseFee.
32
+ // The bundler need to set a large enough gasBid to account for network baseFee fluctuations.
33
+ // GasBid = min(maxFee, base + priority)
34
+ if (chainType === "arbitrum") {
35
+ const scaledBaseFee = scaleBigIntByPercent(networkBaseFee, 100n + 20n * BigInt(bundle.submissionAttempts));
36
+ return {
37
+ maxFeePerGas: scaledBaseFee * arbitrumGasBidMultiplier,
38
+ maxPriorityFeePerGas: scaledBaseFee * arbitrumGasBidMultiplier
39
+ };
40
+ }
41
+ // Increase network gas price for resubmissions to improve tx inclusion
42
+ let [networkMaxFeePerGas, networkMaxPriorityFeePerGas] = [
43
+ networkGasPrice.maxFeePerGas,
44
+ networkGasPrice.maxPriorityFeePerGas
45
+ ];
46
+ if (bundle.submissionAttempts > 0) {
47
+ const multiplier = 100n + BigInt(bundle.submissionAttempts) * 20n;
48
+ networkMaxFeePerGas = scaleBigIntByPercent(networkMaxFeePerGas, minBigInt(multiplier, resubmitMultiplierCeiling));
49
+ networkMaxPriorityFeePerGas = scaleBigIntByPercent(networkMaxPriorityFeePerGas, minBigInt(multiplier, resubmitMultiplierCeiling));
50
+ }
51
+ // The bundler should place a gasBid that is competetive with the network's gasPrice.
52
+ const breakEvenGasPrice = totalBeneficiaryFees / bundleGasUsed;
53
+ // Calculate commission: start at bundlerInitialCommission%, then
54
+ // halve the commission with each resubmission attempt
55
+ const currentCommission = bundlerInitialCommission / 2n ** BigInt(bundle.submissionAttempts);
56
+ const pricingPercent = 100n - currentCommission;
57
+ const bundlingGasPrice = scaleBigIntByPercent(breakEvenGasPrice, pricingPercent);
58
+ if (legacyTransactions) {
59
+ const gasPrice = maxBigInt(bundlingGasPrice, networkMaxFeePerGas);
60
+ return {
61
+ maxFeePerGas: gasPrice,
62
+ maxPriorityFeePerGas: gasPrice
63
+ };
64
+ }
65
+ const effectiveGasPrice = minBigInt(networkMaxFeePerGas, networkBaseFee + networkMaxPriorityFeePerGas);
66
+ if (bundlingGasPrice > effectiveGasPrice) {
67
+ return {
68
+ maxFeePerGas: bundlingGasPrice,
69
+ maxPriorityFeePerGas: bundlingGasPrice
70
+ };
71
+ }
72
+ return {
73
+ maxFeePerGas: networkMaxFeePerGas,
74
+ maxPriorityFeePerGas: networkMaxPriorityFeePerGas
75
+ };
76
+ }
28
77
  async sendHandleOpsTransaction({ txParam, gasOpts }) {
29
- const { entryPoint, userOps, account, gas, nonce } = txParam;
30
78
  const { executorGasMultiplier, sendHandleOpsRetryCount, transactionUnderpricedMultiplier, walletClient, publicClient } = this.config;
79
+ const { entryPoint, userOps, account, gas, nonce } = txParam;
31
80
  const handleOpsCalldata = encodeHandleOpsCalldata({
32
81
  userOps: userOps.map(({ userOp }) => userOp),
33
82
  beneficiary: account.address
@@ -65,9 +114,10 @@ export class Executor {
65
114
  address: account.address,
66
115
  blockTag: "latest"
67
116
  });
68
- if (request.maxFeePerGas &&
69
- request.maxPriorityFeePerGas) {
117
+ if (request.maxFeePerGas) {
70
118
  request.maxFeePerGas = scaleBigIntByPercent(request.maxFeePerGas, transactionUnderpricedMultiplier);
119
+ }
120
+ if (request.maxPriorityFeePerGas) {
71
121
  request.maxPriorityFeePerGas = scaleBigIntByPercent(request.maxPriorityFeePerGas, transactionUnderpricedMultiplier);
72
122
  }
73
123
  if (request.gasPrice) {
@@ -75,6 +125,18 @@ export class Executor {
75
125
  }
76
126
  }
77
127
  }
128
+ if (e instanceof FeeCapTooLowError) {
129
+ this.logger.warn("max fee < basefee, retrying");
130
+ if (request.gasPrice) {
131
+ request.gasPrice = scaleBigIntByPercent(request.gasPrice, 125n);
132
+ }
133
+ if (request.maxFeePerGas) {
134
+ request.maxFeePerGas = scaleBigIntByPercent(request.maxFeePerGas, 125n);
135
+ }
136
+ if (request.maxPriorityFeePerGas) {
137
+ request.maxPriorityFeePerGas = scaleBigIntByPercent(request.maxPriorityFeePerGas, 125n);
138
+ }
139
+ }
78
140
  const error = e;
79
141
  if (error instanceof TransactionExecutionError) {
80
142
  const cause = error.cause;
@@ -96,12 +158,6 @@ export class Executor {
96
158
  this.logger.warn("Intrinsic gas too low, retrying");
97
159
  request.gas = scaleBigIntByPercent(request.gas, 150n);
98
160
  }
99
- // This is thrown by OP-Stack chains that use proxyd.
100
- // ref: https://github.com/ethereum-optimism/optimism/issues/2618#issuecomment-1630272888
101
- if (cause.details?.includes("no backends available")) {
102
- this.logger.warn("no backends avaiable error, retrying after 500ms");
103
- await new Promise((resolve) => setTimeout(resolve, 500));
104
- }
105
161
  }
106
162
  attempts++;
107
163
  if (attempts === maxAttempts) {
@@ -115,65 +171,52 @@ export class Executor {
115
171
  }
116
172
  return transactionHash;
117
173
  }
118
- async bundle({ executor, userOpBundle, nonce, gasPriceParams, isReplacementTx }) {
174
+ async bundle({ executor, userOpBundle, networkGasPrice, networkBaseFee, nonce }) {
119
175
  const { entryPoint, userOps } = userOpBundle;
120
- const { maxFeePerGas, maxPriorityFeePerGas } = gasPriceParams;
176
+ const isReplacementTx = userOpBundle.submissionAttempts > 0;
121
177
  let childLogger = this.logger.child({
122
178
  isReplacementTx,
123
179
  userOperations: getUserOpHashes(userOps),
124
180
  entryPoint
125
181
  });
126
- let estimateResult = await filterOpsAndEstimateGas({
182
+ let filterOpsResult = await filterOpsAndEstimateGas({
183
+ gasPriceManager: this.gasPriceManager,
127
184
  userOpBundle,
128
- executor,
129
- nonce,
130
- maxFeePerGas,
131
- maxPriorityFeePerGas,
132
- codeOverrideSupport: this.config.codeOverrideSupport,
133
- reputationManager: this.reputationManager,
134
185
  config: this.config,
135
186
  logger: childLogger
136
187
  });
137
- if (estimateResult.status === "unhandled_failure") {
138
- childLogger.error("gas limit simulation encountered unexpected failure");
188
+ if (filterOpsResult.status === "unhandled_error") {
189
+ childLogger.error("encountered unexpected failure during filterOps");
139
190
  return {
140
- status: "unhandled_simulation_failure",
141
- rejectedUserOps: estimateResult.rejectedUserOps,
142
- reason: "INTERNAL FAILURE"
191
+ status: "filterops_unhandled_error",
192
+ rejectedUserOps: filterOpsResult.rejectedUserOps
143
193
  };
144
194
  }
145
- if (estimateResult.status === "all_ops_failed_simulation") {
195
+ if (filterOpsResult.status === "all_ops_rejected") {
146
196
  childLogger.warn("all ops failed simulation");
147
197
  return {
148
- status: "all_ops_failed_simulation",
149
- rejectedUserOps: estimateResult.rejectedUserOps
198
+ status: "filterops_all_rejected",
199
+ rejectedUserOps: filterOpsResult.rejectedUserOps
150
200
  };
151
201
  }
152
- let { gasLimit, userOpsToBundle, rejectedUserOps } = estimateResult;
202
+ let { userOpsToBundle, rejectedUserOps, bundleGasUsed, bundleGasLimit, totalBeneficiaryFees } = filterOpsResult;
153
203
  // Update child logger with userOperations being sent for bundling.
154
204
  childLogger = this.logger.child({
155
205
  isReplacementTx,
156
206
  userOperations: getUserOpHashes(userOpsToBundle),
157
207
  entryPoint
158
208
  });
159
- // Ensure that we don't submit with gas too low leading to AA95.
160
- const aa95GasFloor = calculateAA95GasFloor({
161
- userOps: userOpsToBundle.map(({ userOp }) => userOp),
162
- beneficiary: executor.address
209
+ const { maxFeePerGas, maxPriorityFeePerGas } = await this.getBundleGasPrice({
210
+ bundle: userOpBundle,
211
+ networkGasPrice,
212
+ networkBaseFee,
213
+ totalBeneficiaryFees,
214
+ bundleGasUsed
163
215
  });
164
- gasLimit = maxBigInt(gasLimit, aa95GasFloor);
165
- if (this.config.localGasCalculation) {
166
- const eip7702Overhead = userOpBundle.userOps.filter(({ userOp }) => userOp.eip7702Auth)
167
- .length * 40000;
168
- gasLimit = aa95GasFloor + BigInt(eip7702Overhead);
169
- }
170
- // sometimes the estimation rounds down, adding a fixed constant accounts for this
171
- gasLimit += 10000n;
172
216
  let transactionHash;
173
217
  try {
174
218
  const isLegacyTransaction = this.config.legacyTransactions;
175
219
  const authorizationList = getAuthorizationList(userOpsToBundle);
176
- const { maxFeePerGas, maxPriorityFeePerGas } = gasPriceParams;
177
220
  let gasOpts;
178
221
  if (isLegacyTransaction) {
179
222
  gasOpts = {
@@ -200,9 +243,8 @@ export class Executor {
200
243
  txParam: {
201
244
  account: executor,
202
245
  nonce,
203
- gas: gasLimit,
246
+ gas: bundleGasLimit,
204
247
  userOps: userOpsToBundle,
205
- isReplacementTx,
206
248
  entryPoint
207
249
  },
208
250
  gasOpts
@@ -214,38 +256,50 @@ export class Executor {
214
256
  }
215
257
  catch (err) {
216
258
  const e = parseViemError(err);
217
- const { rejectedUserOps, userOpsToBundle } = estimateResult;
259
+ const { rejectedUserOps, userOpsToBundle } = filterOpsResult;
218
260
  // if unknown error, return INTERNAL FAILURE
219
261
  if (!e) {
220
262
  sentry.captureException(err);
221
- childLogger.error({ error: JSON.stringify(err) }, "unknown error submitting bundle transaction");
263
+ childLogger.error({ err: JSON.stringify(err) }, "unknown error submitting bundle transaction");
222
264
  return {
223
265
  rejectedUserOps,
224
266
  userOpsToBundle,
225
- status: "bundle_submission_failure",
267
+ status: "submission_generic_error",
226
268
  reason: "INTERNAL FAILURE"
227
269
  };
228
270
  }
271
+ // Check if executor has insufficient funds
272
+ if (e instanceof InsufficientFundsError) {
273
+ childLogger.warn({
274
+ executor: executor.address,
275
+ err: jsonStringifyWithBigint(err)
276
+ }, "executor has insufficient funds");
277
+ return {
278
+ rejectedUserOps,
279
+ userOpsToBundle,
280
+ status: "submission_insufficient_funds_error"
281
+ };
282
+ }
229
283
  childLogger.error({
230
- err: JSON.stringify(err, (_key, value) => typeof value === "bigint" ? value.toString() : value)
284
+ err: jsonStringifyWithBigint(err)
231
285
  }, "error submitting bundle transaction");
232
286
  return {
233
287
  rejectedUserOps,
234
288
  userOpsToBundle,
235
- status: "bundle_submission_failure",
289
+ status: "submission_generic_error",
236
290
  reason: e
237
291
  };
238
292
  }
239
293
  const userOpsBundled = userOpsToBundle;
240
294
  const bundleResult = {
241
- status: "bundle_success",
295
+ status: "submission_success",
242
296
  userOpsBundled,
243
297
  rejectedUserOps,
244
298
  transactionHash,
245
299
  transactionRequest: {
246
- gas: gasLimit,
247
- maxFeePerGas: gasPriceParams.maxFeePerGas,
248
- maxPriorityFeePerGas: gasPriceParams.maxPriorityFeePerGas,
300
+ gas: bundleGasLimit,
301
+ maxFeePerGas,
302
+ maxPriorityFeePerGas,
249
303
  nonce
250
304
  }
251
305
  };
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../executor/executor.ts"],"names":[],"mappings":"AAYA,OAAO,EACH,aAAa,EACb,SAAS,EACT,cAAc,EACd,oBAAoB,EACvB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,EACH,uBAAuB,EACvB,gBAAgB,EAChB,yBAAyB,EAGzB,iBAAiB,EACjB,SAAS,EACZ,MAAM,MAAM,CAAA;AACb,OAAO,EACH,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,6BAA6B,EAChC,MAAM,SAAS,CAAA;AAIhB,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AAgCnE,MAAM,OAAO,QAAQ;IACjB,MAAM,CAAY;IAClB,MAAM,CAAQ;IACd,OAAO,CAAS;IAChB,iBAAiB,CAA4B;IAC7C,eAAe,CAAiB;IAChC,OAAO,CAAS;IAChB,YAAY,CAAc;IAE1B,YAAY,EACR,MAAM,EACN,OAAO,EACP,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,YAAY,EAQf;QACG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAA;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAC1B,EAAE,MAAM,EAAE,UAAU,EAAE,EACtB;YACI,KAAK,EAAE,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,QAAQ;SACpD,CACJ,CAAA;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IAED,SAAS,CAAC,WAAoB,EAAE,IAAqB;QACjD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC9C,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,EAC3B,OAAO,EACP,OAAO,EAIV;QACG,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;QAE5D,MAAM,EACF,qBAAqB,EACrB,uBAAuB,EACvB,gCAAgC,EAChC,YAAY,EACZ,YAAY,EACf,GAAG,IAAI,CAAC,MAAM,CAAA;QAEf,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;YAC9C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;YAC5C,WAAW,EAAE,OAAO,CAAC,OAAO;SAC/B,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG;YACZ,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,GAAG;YACH,OAAO;YACP,KAAK;YACL,GAAG,OAAO;SACb,CAAA;QAED,OAAO,CAAC,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAA;QAEtE,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,IAAI,eAAgC,CAAA;QACpC,MAAM,WAAW,GAAG,uBAAuB,CAAA;QAE3C,iFAAiF;QACjF,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACD,wCAAwC;gBACxC,OAAO,CAAC,GAAG,GAAG,aAAa,CAAC;oBACxB,KAAK,EAAE,OAAO,CAAC,GAAG;oBAClB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,wBAAwB;iBACjD,CAAC,CAAA;gBAEF,eAAe,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;gBAE7D,MAAK;YACT,CAAC;YAAC,OAAO,CAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,YAAY,SAAS,EAAE,CAAC;oBACzB,IAAI,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC;wBACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAA;wBAErD,OAAO,CAAC,KAAK,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC;4BACnD,OAAO,EAAE,OAAO,CAAC,OAAO;4BACxB,QAAQ,EAAE,QAAQ;yBACrB,CAAC,CAAA;wBAEF,IACI,OAAO,CAAC,YAAY;4BACpB,OAAO,CAAC,oBAAoB,EAC9B,CAAC;4BACC,OAAO,CAAC,YAAY,GAAG,oBAAoB,CACvC,OAAO,CAAC,YAAY,EACpB,gCAAgC,CACnC,CAAA;4BACD,OAAO,CAAC,oBAAoB,GAAG,oBAAoB,CAC/C,OAAO,CAAC,oBAAoB,EAC5B,gCAAgC,CACnC,CAAA;wBACL,CAAC;wBAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;4BACnB,OAAO,CAAC,QAAQ,GAAG,oBAAoB,CACnC,OAAO,CAAC,QAAQ,EAChB,gCAAgC,CACnC,CAAA;wBACL,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,MAAM,KAAK,GAAG,CAA6B,CAAA;gBAE3C,IAAI,KAAK,YAAY,yBAAyB,EAAE,CAAC;oBAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;oBAEzB,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;wBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;wBAC3C,OAAO,CAAC,KAAK,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC;4BACnD,OAAO,EAAE,OAAO,CAAC,IAAI;4BACrB,QAAQ,EAAE,QAAQ;yBACrB,CAAC,CAAA;oBACN,CAAC;oBAED,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;wBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;wBAC5C,OAAO,CAAC,KAAK,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC;4BACnD,OAAO,EAAE,OAAO,CAAC,IAAI;4BACrB,QAAQ,EAAE,QAAQ;yBACrB,CAAC,CAAA;oBACN,CAAC;oBAED,IAAI,KAAK,YAAY,uBAAuB,EAAE,CAAC;wBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;wBACnD,OAAO,CAAC,GAAG,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;oBACzD,CAAC;oBAED,qDAAqD;oBACrD,yFAAyF;oBACzF,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;wBACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,kDAAkD,CACrD,CAAA;wBACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;oBAC5D,CAAC;gBACL,CAAC;gBAED,QAAQ,EAAE,CAAA;gBAEV,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;oBAC3B,MAAM,KAAK,CAAA;gBACf,CAAC;YACL,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,IAAI,CAAC,eAAe,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QACpD,CAAC;QAED,OAAO,eAAsB,CAAA;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EACT,QAAQ,EACR,YAAY,EACZ,KAAK,EACL,cAAc,EACd,eAAe,EAOlB;QACG,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,YAAY,CAAA;QAC5C,MAAM,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,cAAc,CAAA;QAE7D,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAChC,eAAe;YACf,cAAc,EAAE,eAAe,CAAC,OAAO,CAAC;YACxC,UAAU;SACb,CAAC,CAAA;QAEF,IAAI,cAAc,GAAG,MAAM,uBAAuB,CAAC;YAC/C,YAAY;YACZ,QAAQ;YACR,KAAK;YACL,YAAY;YACZ,oBAAoB;YACpB,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB;YACpD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,WAAW;SACtB,CAAC,CAAA;QAEF,IAAI,cAAc,CAAC,MAAM,KAAK,mBAAmB,EAAE,CAAC;YAChD,WAAW,CAAC,KAAK,CACb,qDAAqD,CACxD,CAAA;YACD,OAAO;gBACH,MAAM,EAAE,8BAA8B;gBACtC,eAAe,EAAE,cAAc,CAAC,eAAe;gBAC/C,MAAM,EAAE,kBAAkB;aAC7B,CAAA;QACL,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,KAAK,2BAA2B,EAAE,CAAC;YACxD,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;YAC7C,OAAO;gBACH,MAAM,EAAE,2BAA2B;gBACnC,eAAe,EAAE,cAAc,CAAC,eAAe;aAClD,CAAA;QACL,CAAC;QAED,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,cAAc,CAAA;QAEnE,mEAAmE;QACnE,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAC5B,eAAe;YACf,cAAc,EAAE,eAAe,CAAC,eAAe,CAAC;YAChD,UAAU;SACb,CAAC,CAAA;QAEF,gEAAgE;QAChE,MAAM,YAAY,GAAG,qBAAqB,CAAC;YACvC,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;YACpD,WAAW,EAAE,QAAQ,CAAC,OAAO;SAChC,CAAC,CAAA;QACF,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAE5C,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAClC,MAAM,eAAe,GACjB,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC;iBAC1D,MAAM,GAAG,KAAK,CAAA;YACvB,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;QACrD,CAAC;QAED,kFAAkF;QAClF,QAAQ,IAAI,MAAO,CAAA;QAEnB,IAAI,eAA0B,CAAA;QAC9B,IAAI,CAAC;YACD,MAAM,mBAAmB,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAA;YAC1D,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,eAAe,CAAC,CAAA;YAC/D,MAAM,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,cAAc,CAAA;YAE7D,IAAI,OAA2B,CAAA;YAC/B,IAAI,mBAAmB,EAAE,CAAC;gBACtB,OAAO,GAAG;oBACN,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,YAAY;iBACzB,CAAA;YACL,CAAC;iBAAM,IAAI,iBAAiB,EAAE,CAAC;gBAC3B,OAAO,GAAG;oBACN,IAAI,EAAE,SAAS;oBACf,YAAY;oBACZ,oBAAoB;oBACpB,iBAAiB;iBACpB,CAAA;YACL,CAAC;iBAAM,CAAC;gBACJ,OAAO,GAAG;oBACN,IAAI,EAAE,SAAS;oBACf,YAAY;oBACZ,oBAAoB;iBACvB,CAAA;YACL,CAAC;YAED,eAAe,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC;gBAClD,OAAO,EAAE;oBACL,OAAO,EAAE,QAAQ;oBACjB,KAAK;oBACL,GAAG,EAAE,QAAQ;oBACb,OAAO,EAAE,eAAe;oBACxB,eAAe;oBACf,UAAU;iBACb;gBACD,OAAO;aACV,CAAC,CAAA;YAEF,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;gBAC5B,YAAY,EAAE,eAAe,CAAC,eAAe,CAAC;gBAC9C,eAAe;aAClB,CAAC,CAAA;QACN,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;YAC7B,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,cAAc,CAAA;YAE3D,4CAA4C;YAC5C,IAAI,CAAC,CAAC,EAAE,CAAC;gBACL,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAA;gBAC5B,WAAW,CAAC,KAAK,CACb,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAC9B,6CAA6C,CAChD,CAAA;gBACD,OAAO;oBACH,eAAe;oBACf,eAAe;oBACf,MAAM,EAAE,2BAA2B;oBACnC,MAAM,EAAE,kBAAkB;iBAC7B,CAAA;YACL,CAAC;YAED,WAAW,CAAC,KAAK,CACb;gBACI,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACrC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CACvD;aACJ,EACD,qCAAqC,CACxC,CAAA;YAED,OAAO;gBACH,eAAe;gBACf,eAAe;gBACf,MAAM,EAAE,2BAA2B;gBACnC,MAAM,EAAE,CAAC;aACZ,CAAA;QACL,CAAC;QAED,MAAM,cAAc,GAAG,eAAe,CAAA;QAEtC,MAAM,YAAY,GAAiB;YAC/B,MAAM,EAAE,gBAAgB;YACxB,cAAc;YACd,eAAe;YACf,eAAe;YACf,kBAAkB,EAAE;gBAChB,GAAG,EAAE,QAAQ;gBACb,YAAY,EAAE,cAAc,CAAC,YAAY;gBACzC,oBAAoB,EAAE,cAAc,CAAC,oBAAoB;gBACzD,KAAK;aACR;SACJ,CAAA;QAED,WAAW,CAAC,IAAI,CACZ;YACI,kBAAkB,EAAE,YAAY,CAAC,kBAAkB;YACnD,MAAM,EAAE,eAAe;YACvB,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAC;SAC5C,EACD,8BAA8B,CACjC,CAAA;QAED,OAAO,YAAY,CAAA;IACvB,CAAC;CACJ"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../executor/executor.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { type Address, type Hash, Hex } from "viem";
6
6
  import type { Executor } from "./executor.js";
7
7
  import type { AltoConfig } from "../createConfig.js";
8
8
  import { SenderManager } from "./senderManager/index.js";
9
+ import { GasPriceParameters } from "../types/index.js";
9
10
  export declare class ExecutorManager {
10
11
  private senderManager;
11
12
  private config;
@@ -39,6 +40,7 @@ export declare class ExecutorManager {
39
40
  autoScalingBundling(): Promise<void>;
40
41
  startWatchingBlocks(handleBlock: (blockNumber: bigint) => void): void;
41
42
  sendBundleNow(): Promise<Hash | undefined>;
43
+ getBaseFee(): Promise<bigint>;
42
44
  sendBundleToExecutor(userOpBundle: UserOperationBundle): Promise<Hex | undefined>;
43
45
  stopWatchingBlocks(): void;
44
46
  private refreshTransactionStatus;
@@ -94,7 +96,12 @@ export declare class ExecutorManager {
94
96
  reason?: `0x${string}` | undefined;
95
97
  } | null>;
96
98
  handleBlock(blockNumber: bigint): Promise<void>;
97
- replaceTransaction(txInfo: TransactionInfo, reason: "gas_price" | "stuck"): Promise<void>;
99
+ replaceTransaction({ txInfo, gasPriceParams, networkBaseFee, reason }: {
100
+ txInfo: TransactionInfo;
101
+ gasPriceParams: GasPriceParameters;
102
+ networkBaseFee: bigint;
103
+ reason: "gas_price" | "stuck";
104
+ }): Promise<void>;
98
105
  markUserOperationsAsReplaced(userOpsReplaced: UserOpInfo[], newTxInfo: TransactionInfo): Promise<void>;
99
106
  markUserOperationsAsSubmitted(userOpInfos: UserOpInfo[], transactionInfo: TransactionInfo): Promise<void>;
100
107
  resubmitUserOperations(userOps: UserOpInfo[], entryPoint: Address, reason: string): Promise<void>;