@pimlico/alto 0.0.0-main.20250606T161836 → 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.
- package/contracts/EIP712.sol/EIP712.json +1 -1
- package/contracts/ERC165.sol/ERC165.json +1 -1
- package/contracts/Eip7702Support.sol/Eip7702Support.json +1 -1
- package/contracts/EntryPoint.sol/EntryPoint.json +1 -1
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -0
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -0
- package/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -0
- package/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -0
- package/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -0
- package/contracts/EntryPointSimulations.sol/{EntryPointSimulations.json → EntryPointSimulations08.json} +1 -1
- package/contracts/Exec.sol/Exec.json +1 -1
- package/contracts/IAccount.sol/IAccount.json +1 -1
- package/contracts/IAccountExecute.sol/IAccountExecute.json +1 -1
- package/contracts/IAggregator.sol/IAggregator.json +1 -1
- package/contracts/IERC165.sol/IERC165.json +1 -1
- package/contracts/IERC5267.sol/IERC5267.json +1 -1
- package/contracts/IEntryPoint.sol/IEntryPoint.json +1 -1
- package/contracts/IEntryPointSimulations.sol/IEntryPointSimulations.json +1 -1
- package/contracts/INonceManager.sol/INonceManager.json +1 -1
- package/contracts/IPaymaster.sol/IPaymaster.json +1 -1
- package/contracts/ISenderCreator.sol/ISenderCreator.json +1 -1
- package/contracts/IStakeManager.sol/IStakeManager.json +1 -1
- package/contracts/LibBytes.sol/LibBytes.json +1 -0
- package/contracts/Math.sol/Math.json +1 -1
- package/contracts/MessageHashUtils.sol/MessageHashUtils.json +1 -1
- package/contracts/NonceManager.sol/NonceManager.json +1 -1
- package/contracts/Panic.sol/Panic.json +1 -1
- package/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -0
- package/contracts/ReentrancyGuard.sol/ReentrancyGuard.json +1 -1
- package/contracts/ReentrancyGuardTransient.sol/ReentrancyGuardTransient.json +1 -1
- package/contracts/SafeCast.sol/SafeCast.json +1 -1
- package/contracts/SenderCreator.sol/SenderCreator.json +1 -1
- package/contracts/ShortStrings.sol/ShortStrings.json +1 -1
- package/contracts/SignedMath.sol/SignedMath.json +1 -1
- package/contracts/StakeManager.sol/StakeManager.json +1 -1
- package/contracts/StorageSlot.sol/StorageSlot.json +1 -1
- package/contracts/Strings.sol/Strings.json +1 -1
- package/contracts/TransientSlot.sol/TransientSlot.json +1 -1
- package/contracts/UserOperation.sol/UserOperationLib.json +1 -1
- package/contracts/UserOperationLib.sol/UserOperationLib.json +1 -1
- package/contracts/build-info/4a223f6420e18feb.json +1 -0
- package/contracts/build-info/ad2dc60de86c0e4f.json +1 -0
- package/contracts/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
- package/contracts/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -0
- package/contracts/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
- package/contracts/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
- package/contracts/interfaces/IAggregator.sol/IAggregator.json +1 -0
- package/contracts/interfaces/IEntryPoint.sol/IEntryPoint.json +1 -1
- package/contracts/interfaces/INonceManager.sol/INonceManager.json +1 -0
- package/contracts/interfaces/IStakeManager.sol/IStakeManager.json +1 -0
- package/esm/cli/config/bundler.d.ts +434 -416
- package/esm/cli/config/bundler.js +11 -2
- package/esm/cli/config/bundler.js.map +1 -1
- package/esm/cli/config/options.js +21 -4
- package/esm/cli/config/options.js.map +1 -1
- package/esm/cli/deploySimulationsContract.d.ts +2 -0
- package/esm/cli/deploySimulationsContract.js +56 -25
- package/esm/cli/deploySimulationsContract.js.map +1 -1
- package/esm/cli/handler.js +18 -6
- package/esm/cli/handler.js.map +1 -1
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride06.json +1 -0
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride07.json +1 -0
- package/esm/contracts/EntryPointFilterOpsOverride.sol/EntryPointFilterOpsOverride08.json +1 -0
- package/esm/contracts/EntryPointGasEstimationOverride.sol/EntryPointGasEstimationOverride06.json +1 -0
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations07.json +1 -0
- package/esm/contracts/EntryPointSimulations.sol/EntryPointSimulations08.json +1 -0
- package/esm/contracts/PimlicoSimulations.sol/PimlicoSimulations.json +1 -0
- package/esm/createConfig.d.ts +2 -1
- package/esm/createConfig.js +2 -0
- package/esm/createConfig.js.map +1 -1
- package/esm/executor/executor.d.ts +10 -4
- package/esm/executor/executor.js +109 -55
- package/esm/executor/executor.js.map +1 -1
- package/esm/executor/executorManager.d.ts +8 -1
- package/esm/executor/executorManager.js +75 -76
- package/esm/executor/executorManager.js.map +1 -1
- package/esm/executor/filterOpsAndEstimateGas.d.ts +25 -0
- package/esm/executor/filterOpsAndEstimateGas.js +251 -0
- package/esm/executor/filterOpsAndEstimateGas.js.map +1 -0
- package/esm/executor/utils.js +1 -1
- package/esm/executor/utils.js.map +1 -1
- package/esm/mempool/mempool.js +15 -4
- package/esm/mempool/mempool.js.map +1 -1
- package/esm/rpc/estimation/gasEstimationsV06.js +12 -4
- package/esm/rpc/estimation/gasEstimationsV06.js.map +1 -1
- package/esm/rpc/estimation/gasEstimationsV07.d.ts +1 -1
- package/esm/rpc/estimation/gasEstimationsV07.js +25 -22
- package/esm/rpc/estimation/gasEstimationsV07.js.map +1 -1
- package/esm/rpc/methods/pimlico_sendUserOperationNow.js +14 -4
- package/esm/rpc/methods/pimlico_sendUserOperationNow.js.map +1 -1
- package/esm/rpc/validation/SafeValidator.js +17 -9
- package/esm/rpc/validation/SafeValidator.js.map +1 -1
- package/esm/types/contracts/EntryPointSimulationsV6.d.ts +0 -1
- package/esm/types/contracts/EntryPointSimulationsV6.js +0 -2
- package/esm/types/contracts/EntryPointSimulationsV6.js.map +1 -1
- package/esm/types/contracts/PimlicoSimulations.d.ts +284 -0
- package/esm/types/contracts/PimlicoSimulations.js +368 -0
- package/esm/types/contracts/PimlicoSimulations.js.map +1 -0
- package/esm/types/contracts/index.d.ts +1 -1
- package/esm/types/contracts/index.js +1 -1
- package/esm/types/contracts/index.js.map +1 -1
- package/esm/types/mempool.d.ts +11 -7
- package/esm/types/mempool.js.map +1 -1
- package/esm/utils/eip7702.d.ts +1 -1
- package/esm/utils/eip7702.js +3 -0
- package/esm/utils/eip7702.js.map +1 -1
- package/esm/utils/entryPointOverrides.d.ts +16 -0
- package/esm/utils/entryPointOverrides.js +64 -0
- package/esm/utils/entryPointOverrides.js.map +1 -0
- package/esm/utils/helpers.d.ts +1 -0
- package/esm/utils/helpers.js +4 -0
- package/esm/utils/helpers.js.map +1 -1
- package/esm/utils/validation.d.ts +5 -0
- package/esm/utils/validation.js +17 -7
- package/esm/utils/validation.js.map +1 -1
- package/package.json +2 -2
- package/contracts/EntryPointCodeOverride.sol/EntryPointCodeOverride.json +0 -1
- package/contracts/PimlicoEntryPointSimulationsV7.sol/PimlicoEntryPointSimulationsV7.json +0 -1
- package/contracts/PimlicoEntryPointSimulationsV8.sol/PimlicoEntryPointSimulationsV8.json +0 -1
- package/contracts/build-info/96c79d1c9e9e095f.json +0 -1
- package/contracts/build-info/b400ff92e5db9cf3.json +0 -1
- package/esm/contracts/PimlicoEntryPointSimulationsV7.sol/PimlicoEntryPointSimulationsV7.json +0 -1
- package/esm/contracts/PimlicoEntryPointSimulationsV8.sol/PimlicoEntryPointSimulationsV8.json +0 -1
- package/esm/executor/filterOpsAndEStimateGas.d.ts +0 -29
- package/esm/executor/filterOpsAndEStimateGas.js +0 -198
- package/esm/executor/filterOpsAndEStimateGas.js.map +0 -1
- package/esm/types/contracts/PimlicoEntryPointSimulations.d.ts +0 -25
- package/esm/types/contracts/PimlicoEntryPointSimulations.js +0 -39
- 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 }
|
package/esm/createConfig.d.ts
CHANGED
|
@@ -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;
|
package/esm/createConfig.js
CHANGED
|
@@ -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
|
}
|
package/esm/createConfig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createConfig.js","sourceRoot":"","sources":["../createConfig.ts"],"names":[],"mappings":"
|
|
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,
|
|
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 {};
|
package/esm/executor/executor.js
CHANGED
|
@@ -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 {
|
|
5
|
-
import { filterOpsAndEstimateGas } from "./
|
|
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,
|
|
174
|
+
async bundle({ executor, userOpBundle, networkGasPrice, networkBaseFee, nonce }) {
|
|
119
175
|
const { entryPoint, userOps } = userOpBundle;
|
|
120
|
-
const
|
|
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
|
|
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 (
|
|
138
|
-
childLogger.error("
|
|
188
|
+
if (filterOpsResult.status === "unhandled_error") {
|
|
189
|
+
childLogger.error("encountered unexpected failure during filterOps");
|
|
139
190
|
return {
|
|
140
|
-
status: "
|
|
141
|
-
rejectedUserOps:
|
|
142
|
-
reason: "INTERNAL FAILURE"
|
|
191
|
+
status: "filterops_unhandled_error",
|
|
192
|
+
rejectedUserOps: filterOpsResult.rejectedUserOps
|
|
143
193
|
};
|
|
144
194
|
}
|
|
145
|
-
if (
|
|
195
|
+
if (filterOpsResult.status === "all_ops_rejected") {
|
|
146
196
|
childLogger.warn("all ops failed simulation");
|
|
147
197
|
return {
|
|
148
|
-
status: "
|
|
149
|
-
rejectedUserOps:
|
|
198
|
+
status: "filterops_all_rejected",
|
|
199
|
+
rejectedUserOps: filterOpsResult.rejectedUserOps
|
|
150
200
|
};
|
|
151
201
|
}
|
|
152
|
-
let {
|
|
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
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
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:
|
|
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 } =
|
|
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({
|
|
263
|
+
childLogger.error({ err: JSON.stringify(err) }, "unknown error submitting bundle transaction");
|
|
222
264
|
return {
|
|
223
265
|
rejectedUserOps,
|
|
224
266
|
userOpsToBundle,
|
|
225
|
-
status: "
|
|
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:
|
|
284
|
+
err: jsonStringifyWithBigint(err)
|
|
231
285
|
}, "error submitting bundle transaction");
|
|
232
286
|
return {
|
|
233
287
|
rejectedUserOps,
|
|
234
288
|
userOpsToBundle,
|
|
235
|
-
status: "
|
|
289
|
+
status: "submission_generic_error",
|
|
236
290
|
reason: e
|
|
237
291
|
};
|
|
238
292
|
}
|
|
239
293
|
const userOpsBundled = userOpsToBundle;
|
|
240
294
|
const bundleResult = {
|
|
241
|
-
status: "
|
|
295
|
+
status: "submission_success",
|
|
242
296
|
userOpsBundled,
|
|
243
297
|
rejectedUserOps,
|
|
244
298
|
transactionHash,
|
|
245
299
|
transactionRequest: {
|
|
246
|
-
gas:
|
|
247
|
-
maxFeePerGas
|
|
248
|
-
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,
|
|
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
|
|
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>;
|