From cfe3a9ee6d1892de3c0f40fb00561ab12b459e1d Mon Sep 17 00:00:00 2001 From: 0xcy <993921@qq.com> Date: Fri, 4 Oct 2024 10:10:10 +0800 Subject: [PATCH] re-write bls light account contract --- cache/solidity-files-cache.json | 2 +- src/BLSLightAccount.sol | 235 ++++++++++++++++++++++---------- test/BLSLightAccount.sol | 43 +++--- 3 files changed, 190 insertions(+), 90 deletions(-) diff --git a/cache/solidity-files-cache.json b/cache/solidity-files-cache.json index 74e65db..1224b80 100644 --- a/cache/solidity-files-cache.json +++ b/cache/solidity-files-cache.json @@ -1 +1 @@ -{"_format":"","paths":{"artifacts":"out","build_infos":"out/build-info","sources":"src","tests":"test","scripts":"script","libraries":["lib"]},"files":{"lib/forge-std/src/Base.sol":{"lastModificationDate":1727956088662,"contentHash":"ee13c050b1914464f1d3f90cde90204b","sourceName":"lib/forge-std/src/Base.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/StdStorage.sol","lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"CommonBase":{"0.8.27":{"path":"Base.sol\\CommonBase.json","build_id":"14a03844074d052d409b885176959fa8"}},"ScriptBase":{"0.8.27":{"path":"Base.sol\\ScriptBase.json","build_id":"14a03844074d052d409b885176959fa8"}},"TestBase":{"0.8.27":{"path":"Base.sol\\TestBase.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/Script.sol":{"lastModificationDate":1727956088662,"contentHash":"ba325c778a7da8a21c2136aa32763c14","sourceName":"lib/forge-std/src/Script.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Base.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol","lib/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"Script":{"0.8.27":{"path":"Script.sol\\Script.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/StdAssertions.sol":{"lastModificationDate":1727956088663,"contentHash":"25b77f9806b64d497b8a46aeb8e5f6f0","sourceName":"lib/forge-std/src/StdAssertions.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdAssertions":{"0.8.27":{"path":"StdAssertions.sol\\StdAssertions.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/StdChains.sol":{"lastModificationDate":1727956088663,"contentHash":"b039727c96bb3d5b9a59448fd16b1e0f","sourceName":"lib/forge-std/src/StdChains.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdChains":{"0.8.27":{"path":"StdChains.sol\\StdChains.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/StdCheats.sol":{"lastModificationDate":1727956088663,"contentHash":"96c712134b63f85d00461749d0c1611c","sourceName":"lib/forge-std/src/StdCheats.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/StdStorage.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdCheats":{"0.8.27":{"path":"StdCheats.sol\\StdCheats.json","build_id":"14a03844074d052d409b885176959fa8"}},"StdCheatsSafe":{"0.8.27":{"path":"StdCheats.sol\\StdCheatsSafe.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/StdError.sol":{"lastModificationDate":1727956088664,"contentHash":"64c896e1276a291776e5ea5aecb3870a","sourceName":"lib/forge-std/src/StdError.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdError":{"0.8.27":{"path":"StdError.sol\\stdError.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/StdInvariant.sol":{"lastModificationDate":1727956088664,"contentHash":"f16837d0e7cb829544ae1f1319ea7643","sourceName":"lib/forge-std/src/StdInvariant.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdInvariant":{"0.8.27":{"path":"StdInvariant.sol\\StdInvariant.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/StdJson.sol":{"lastModificationDate":1727956088664,"contentHash":"02209da5708eaee03e24a9c24a687370","sourceName":"lib/forge-std/src/StdJson.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.0, <0.9.0","artifacts":{"stdJson":{"0.8.27":{"path":"StdJson.sol\\stdJson.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/StdMath.sol":{"lastModificationDate":1727956088664,"contentHash":"9da8f453eba6bb98f3d75bc6822bfb29","sourceName":"lib/forge-std/src/StdMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdMath":{"0.8.27":{"path":"StdMath.sol\\stdMath.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/StdStorage.sol":{"lastModificationDate":1727956088665,"contentHash":"ce68f6e336944f16d31351a47d0b19b8","sourceName":"lib/forge-std/src/StdStorage.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdStorage":{"0.8.27":{"path":"StdStorage.sol\\stdStorage.json","build_id":"14a03844074d052d409b885176959fa8"}},"stdStorageSafe":{"0.8.27":{"path":"StdStorage.sol\\stdStorageSafe.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/StdStyle.sol":{"lastModificationDate":1727956088665,"contentHash":"6281165a12aa639705c691fccefd855e","sourceName":"lib/forge-std/src/StdStyle.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{"StdStyle":{"0.8.27":{"path":"StdStyle.sol\\StdStyle.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/StdToml.sol":{"lastModificationDate":1727956088665,"contentHash":"4bce85a4c60f2c073e651ee8140bcb4d","sourceName":"lib/forge-std/src/StdToml.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.0, <0.9.0","artifacts":{"stdToml":{"0.8.27":{"path":"StdToml.sol\\stdToml.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/StdUtils.sol":{"lastModificationDate":1727956088666,"contentHash":"b50717f17f251a2a96a5884c90add7bf","sourceName":"lib/forge-std/src/StdUtils.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdUtils":{"0.8.27":{"path":"StdUtils.sol\\StdUtils.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/Test.sol":{"lastModificationDate":1727956088666,"contentHash":"b6f15605355fc8c421fe42a90f94bf32","sourceName":"lib/forge-std/src/Test.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Base.sol","lib/forge-std/src/StdAssertions.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdError.sol","lib/forge-std/src/StdInvariant.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdToml.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol","lib/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"Test":{"0.8.27":{"path":"Test.sol\\Test.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/Vm.sol":{"lastModificationDate":1727956088667,"contentHash":"5928f469b3646114f329b4129fcf2401","sourceName":"lib/forge-std/src/Vm.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"Vm":{"0.8.27":{"path":"Vm.sol\\Vm.json","build_id":"14a03844074d052d409b885176959fa8"}},"VmSafe":{"0.8.27":{"path":"Vm.sol\\VmSafe.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/console.sol":{"lastModificationDate":1727956088667,"contentHash":"ce19a9e49945b42118379ff99d853c05","sourceName":"lib/forge-std/src/console.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{"console":{"0.8.27":{"path":"console.sol\\console.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/console2.sol":{"lastModificationDate":1727956088668,"contentHash":"f65ad21034b111e70fb5342d5771efcd","sourceName":"lib/forge-std/src/console2.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/console.sol"],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{},"seenByCompiler":true},"lib/forge-std/src/interfaces/IERC165.sol":{"lastModificationDate":1727956088668,"contentHash":"90fe5e2e3ed432d6f3b408e7c9e8a739","sourceName":"lib/forge-std/src/interfaces/IERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2","artifacts":{"IERC165":{"0.8.27":{"path":"IERC165.sol\\IERC165.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/interfaces/IERC20.sol":{"lastModificationDate":1727956088668,"contentHash":"8099161d518e5862a76750349d58e801","sourceName":"lib/forge-std/src/interfaces/IERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2","artifacts":{"IERC20":{"0.8.27":{"path":"IERC20.sol\\IERC20.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/interfaces/IERC721.sol":{"lastModificationDate":1727956088669,"contentHash":"efc26e7f9a2f76b68088c8760ceae2dc","sourceName":"lib/forge-std/src/interfaces/IERC721.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/interfaces/IERC165.sol"],"versionRequirement":">=0.6.2","artifacts":{"IERC721":{"0.8.27":{"path":"IERC721.sol\\IERC721.json","build_id":"14a03844074d052d409b885176959fa8"}},"IERC721Enumerable":{"0.8.27":{"path":"IERC721.sol\\IERC721Enumerable.json","build_id":"14a03844074d052d409b885176959fa8"}},"IERC721Metadata":{"0.8.27":{"path":"IERC721.sol\\IERC721Metadata.json","build_id":"14a03844074d052d409b885176959fa8"}},"IERC721TokenReceiver":{"0.8.27":{"path":"IERC721.sol\\IERC721TokenReceiver.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/interfaces/IMulticall3.sol":{"lastModificationDate":1727956088670,"contentHash":"7b131ca1ca32ef6378b7b9ad5488b901","sourceName":"lib/forge-std/src/interfaces/IMulticall3.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"IMulticall3":{"0.8.27":{"path":"IMulticall3.sol\\IMulticall3.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/mocks/MockERC20.sol":{"lastModificationDate":1727956088670,"contentHash":"8e14d63e81e1d54dbc2d44df38ae9dec","sourceName":"lib/forge-std/src/mocks/MockERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/interfaces/IERC20.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"MockERC20":{"0.8.27":{"path":"MockERC20.sol\\MockERC20.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/mocks/MockERC721.sol":{"lastModificationDate":1727956088670,"contentHash":"e91cd9dba7f88f03710c56a347d89d1e","sourceName":"lib/forge-std/src/mocks/MockERC721.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC721.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"MockERC721":{"0.8.27":{"path":"MockERC721.sol\\MockERC721.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/forge-std/src/safeconsole.sol":{"lastModificationDate":1727956088671,"contentHash":"1445aa2f47000e212173e0cefd6c7a77","sourceName":"lib/forge-std/src/safeconsole.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"safeconsole":{"0.8.27":{"path":"safeconsole.sol\\safeconsole.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/core/BaseAccount.sol":{"lastModificationDate":1727956670143,"contentHash":"72f8c2b16f0bd40a373c86ecc12facb3","sourceName":"lib/light-account/lib/account-abstraction/contracts/core/BaseAccount.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts\\core/Helpers.sol","lib/light-account/lib/account-abstraction/contracts/core/UserOperationLib.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAccount.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IEntryPoint.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol"],"versionRequirement":"^0.8.23","artifacts":{"BaseAccount":{"0.8.27":{"path":"BaseAccount.sol\\BaseAccount.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/core/EntryPoint.sol":{"lastModificationDate":1727956670144,"contentHash":"c4f2ff4a5a94a5813047f515beb7dc88","sourceName":"lib/light-account/lib/account-abstraction/contracts/core/EntryPoint.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts\\core/Helpers.sol","lib/light-account/lib/account-abstraction/contracts/core/NonceManager.sol","lib/light-account/lib/account-abstraction/contracts/core/SenderCreator.sol","lib/light-account/lib/account-abstraction/contracts/core/StakeManager.sol","lib/light-account/lib/account-abstraction/contracts/core/UserOperationLib.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAccount.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAccountExecute.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IEntryPoint.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IPaymaster.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol","lib/light-account/lib/account-abstraction/contracts/utils/Exec.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/ReentrancyGuard.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/ERC165.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.23","artifacts":{"EntryPoint":{"0.8.27":{"path":"EntryPoint.sol\\EntryPoint.json","build_id":"7904bc302237ce5cc0b58832e7f3b74c"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/core/Helpers.sol":{"lastModificationDate":1727956670144,"contentHash":"d9a3c7fc04ae5f3fc8011d8792e8cb18","sourceName":"lib/light-account/lib/account-abstraction/contracts/core/Helpers.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.23","artifacts":{},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/core/NonceManager.sol":{"lastModificationDate":1727956670144,"contentHash":"a127aeed000517349e4d579991cc1b5d","sourceName":"lib/light-account/lib/account-abstraction/contracts/core/NonceManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol"],"versionRequirement":"^0.8.23","artifacts":{"NonceManager":{"0.8.27":{"path":"NonceManager.sol\\NonceManager.json","build_id":"7904bc302237ce5cc0b58832e7f3b74c"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/core/SenderCreator.sol":{"lastModificationDate":1727956670145,"contentHash":"c4cda983dfb4422cd413360a23ed244a","sourceName":"lib/light-account/lib/account-abstraction/contracts/core/SenderCreator.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.23","artifacts":{"SenderCreator":{"0.8.27":{"path":"SenderCreator.sol\\SenderCreator.json","build_id":"7904bc302237ce5cc0b58832e7f3b74c"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/core/StakeManager.sol":{"lastModificationDate":1727956670145,"contentHash":"9857ed1921becf91ccf93ca0de9db0b5","sourceName":"lib/light-account/lib/account-abstraction/contracts/core/StakeManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol"],"versionRequirement":"^0.8.23","artifacts":{"StakeManager":{"0.8.27":{"path":"StakeManager.sol\\StakeManager.json","build_id":"7904bc302237ce5cc0b58832e7f3b74c"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/core/UserOperationLib.sol":{"lastModificationDate":1727956670145,"contentHash":"49e8ce45c96e09cb83ff7d1d2e72e448","sourceName":"lib/light-account/lib/account-abstraction/contracts/core/UserOperationLib.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts\\core/Helpers.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol"],"versionRequirement":"^0.8.23","artifacts":{"UserOperationLib":{"0.8.27":{"path":"UserOperationLib.sol\\UserOperationLib.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/interfaces/IAccount.sol":{"lastModificationDate":1727956670146,"contentHash":"1f8a384da0da6354fdd834d63b24dfd4","sourceName":"lib/light-account/lib/account-abstraction/contracts/interfaces/IAccount.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol"],"versionRequirement":">=0.7.5","artifacts":{"IAccount":{"0.8.27":{"path":"IAccount.sol\\IAccount.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/interfaces/IAccountExecute.sol":{"lastModificationDate":1727956670146,"contentHash":"29ded9a414cc72b0b85e3edaa357c9d8","sourceName":"lib/light-account/lib/account-abstraction/contracts/interfaces/IAccountExecute.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol"],"versionRequirement":">=0.7.5","artifacts":{"IAccountExecute":{"0.8.27":{"path":"IAccountExecute.sol\\IAccountExecute.json","build_id":"7904bc302237ce5cc0b58832e7f3b74c"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol":{"lastModificationDate":1727956670146,"contentHash":"ea70aa8db36795540523cebf73f66469","sourceName":"lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol"],"versionRequirement":">=0.7.5","artifacts":{"IAggregator":{"0.8.27":{"path":"IAggregator.sol\\IAggregator.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/interfaces/IEntryPoint.sol":{"lastModificationDate":1727956670147,"contentHash":"d201c25e2806de5038e53c646f93810c","sourceName":"lib/light-account/lib/account-abstraction/contracts/interfaces/IEntryPoint.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol"],"versionRequirement":">=0.7.5","artifacts":{"IEntryPoint":{"0.8.27":{"path":"IEntryPoint.sol\\IEntryPoint.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol":{"lastModificationDate":1727956670147,"contentHash":"2865a605d4aece6b0d511f573003d167","sourceName":"lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.7.5","artifacts":{"INonceManager":{"0.8.27":{"path":"INonceManager.sol\\INonceManager.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/interfaces/IPaymaster.sol":{"lastModificationDate":1727956670148,"contentHash":"0edfe2232b7eb455a17ebaacd0d09243","sourceName":"lib/light-account/lib/account-abstraction/contracts/interfaces/IPaymaster.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol"],"versionRequirement":">=0.7.5","artifacts":{"IPaymaster":{"0.8.27":{"path":"IPaymaster.sol\\IPaymaster.json","build_id":"7904bc302237ce5cc0b58832e7f3b74c"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol":{"lastModificationDate":1727956670148,"contentHash":"8a37b39cb2b2d53efcd76e8d6af616ff","sourceName":"lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.7.5","artifacts":{"IStakeManager":{"0.8.27":{"path":"IStakeManager.sol\\IStakeManager.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol":{"lastModificationDate":1727956670149,"contentHash":"6cdfe05be923cdc6051633ff1614e956","sourceName":"lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.7.5","artifacts":{},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/samples/callback/TokenCallbackHandler.sol":{"lastModificationDate":1727956670155,"contentHash":"7c2d395a28e99da6bca5756ead9bbf8e","sourceName":"lib/light-account/lib/account-abstraction/contracts/samples/callback/TokenCallbackHandler.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC1155/IERC1155Receiver.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC721/IERC721Receiver.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.23","artifacts":{"TokenCallbackHandler":{"0.8.27":{"path":"TokenCallbackHandler.sol\\TokenCallbackHandler.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/utils/Exec.sol":{"lastModificationDate":1727956670162,"contentHash":"8156fbf5a7fe2e169f75483db6787860","sourceName":"lib/light-account/lib/account-abstraction/contracts/utils/Exec.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.23","artifacts":{"Exec":{"0.8.27":{"path":"Exec.sol\\Exec.json","build_id":"7904bc302237ce5cc0b58832e7f3b74c"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"lastModificationDate":1727956726434,"contentHash":"d3c790edc9ccf808a17c5a6cd13614fd","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/access/Ownable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/openzeppelin-contracts/contracts/utils/Context.sol"],"versionRequirement":"^0.8.20","artifacts":{"Ownable":{"0.8.27":{"path":"Ownable.sol\\Ownable.json","build_id":"c2806ec254aef22770f8fd8537112124"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol":{"lastModificationDate":1727956726435,"contentHash":"788848210033a6e4379cfef67e5bcb0d","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/openzeppelin-contracts\\contracts/access/Ownable.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/Context.sol"],"versionRequirement":"^0.8.20","artifacts":{"Ownable2Step":{"0.8.27":{"path":"Ownable2Step.sol\\Ownable2Step.json","build_id":"c2806ec254aef22770f8fd8537112124"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"lastModificationDate":1727956726452,"contentHash":"12a8c0358597a0dc191410b1259e61ee","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC1271":{"0.8.27":{"path":"IERC1271.sol\\IERC1271.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol":{"lastModificationDate":1727956726506,"contentHash":"d14616defa6d417fafa47e416e3cec73","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC1155Receiver":{"0.8.27":{"path":"IERC1155Receiver.sol\\IERC1155Receiver.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"lastModificationDate":1727956726510,"contentHash":"5517c8678c18eb1a8ba58810e7ca39ca","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC20":{"0.8.27":{"path":"ERC20\\IERC20.sol\\IERC20.json","build_id":"c2806ec254aef22770f8fd8537112124"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"lastModificationDate":1727956726515,"contentHash":"da291753fa4641f2c5837bfc4aa4c01b","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC20Permit":{"0.8.27":{"path":"IERC20Permit.sol\\IERC20Permit.json","build_id":"c2806ec254aef22770f8fd8537112124"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"lastModificationDate":1727956726516,"contentHash":"697fd27924863e77c17dace2179018b2","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC20/IERC20.sol","lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/Address.sol"],"versionRequirement":"^0.8.20","artifacts":{"SafeERC20":{"0.8.27":{"path":"SafeERC20.sol\\SafeERC20.json","build_id":"c2806ec254aef22770f8fd8537112124"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"lastModificationDate":1727956726517,"contentHash":"fc8a9841f4bdd6329c26a00d5e75f4b3","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC721Receiver":{"0.8.27":{"path":"IERC721Receiver.sol\\IERC721Receiver.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/Address.sol":{"lastModificationDate":1727956726524,"contentHash":"79c699f80eb8a9b168cb34e37816f894","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/Address.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"Address":{"0.8.27":{"path":"Address.sol\\Address.json","build_id":"c2806ec254aef22770f8fd8537112124"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/Context.sol":{"lastModificationDate":1727956726525,"contentHash":"67bfbc07588eb8683b3fd8f6f909563e","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/Context.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"Context":{"0.8.27":{"path":"Context.sol\\Context.json","build_id":"c2806ec254aef22770f8fd8537112124"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"lastModificationDate":1727956726528,"contentHash":"a92331adac11b453a4de0323fc948119","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"ReentrancyGuard":{"0.8.27":{"path":"ReentrancyGuard.sol\\ReentrancyGuard.json","build_id":"7904bc302237ce5cc0b58832e7f3b74c"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"lastModificationDate":1727956726529,"contentHash":"ba57ff4ddf1d9cae9d2009792795b7f6","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/Strings.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol"],"versionRequirement":"^0.8.20","artifacts":{"Strings":{"0.8.27":{"path":"Strings.sol\\Strings.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"lastModificationDate":1727956726530,"contentHash":"b96e0d7a3c2b185342c7d083d765b61f","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"ECDSA":{"0.8.27":{"path":"ECDSA.sol\\ECDSA.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"lastModificationDate":1727956726531,"contentHash":"9e5eec59eaffa554d6cca561dcb914eb","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/openzeppelin-contracts/contracts/utils/Strings.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol"],"versionRequirement":"^0.8.20","artifacts":{"MessageHashUtils":{"0.8.27":{"path":"MessageHashUtils.sol\\MessageHashUtils.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"lastModificationDate":1727956726531,"contentHash":"67e1b232791e1ea1cf6475bd4aaed191","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/ECDSA.sol"],"versionRequirement":"^0.8.20","artifacts":{"SignatureChecker":{"0.8.27":{"path":"SignatureChecker.sol\\SignatureChecker.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"lastModificationDate":1727956726532,"contentHash":"6a55c353946e471d9792965d06208295","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"ERC165":{"0.8.27":{"path":"ERC165.sol\\ERC165.json","build_id":"7904bc302237ce5cc0b58832e7f3b74c"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"lastModificationDate":1727956726533,"contentHash":"39cb7ad93657f9f444653cf94d6fc392","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"ERC165Checker":{"0.8.27":{"path":"ERC165Checker.sol\\ERC165Checker.json","build_id":"c2806ec254aef22770f8fd8537112124"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"lastModificationDate":1727956726533,"contentHash":"de0163561b417b800d01749cbbe2147e","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC165":{"0.8.27":{"path":"introspection\\IERC165.sol\\IERC165.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"lastModificationDate":1727956726534,"contentHash":"718fa8ba0ff269c92e364c1429d9de57","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/Math.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"Math":{"0.8.27":{"path":"Math.sol\\Math.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"lastModificationDate":1727956726535,"contentHash":"b6c6bdc7aaca4fe5b680760a72e09d3e","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"SignedMath":{"0.8.27":{"path":"SignedMath.sol\\SignedMath.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/src/LightAccount.sol":{"lastModificationDate":1727956616524,"contentHash":"32b2fcc29b88411f607670bf114ddc8e","sourceName":"lib/light-account/src/LightAccount.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts\\core/BaseAccount.sol","lib/light-account/lib/account-abstraction/contracts\\core/Helpers.sol","lib/light-account/lib/account-abstraction/contracts/core/UserOperationLib.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAccount.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IEntryPoint.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol","lib/light-account/lib/account-abstraction/contracts\\samples/callback/TokenCallbackHandler.sol","lib/light-account/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC1155/IERC1155Receiver.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC721/IERC721Receiver.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/Strings.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/ECDSA.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/MessageHashUtils.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/SignatureChecker.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/IERC165.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","lib/light-account/src/common/BaseLightAccount.sol","lib/light-account/src/common/CustomSlotInitializable.sol","lib/light-account/src/common/ERC1271.sol","lib/light-account/src/external/solady/EIP712.sol","lib/light-account/src/external/solady/UUPSUpgradeable.sol"],"versionRequirement":"^0.8.23","artifacts":{"LightAccount":{"0.8.27":{"path":"LightAccount.sol\\LightAccount.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/src/LightAccountFactory.sol":{"lastModificationDate":1727956616524,"contentHash":"9550c8dc625cbd859e6ecd27502dd712","sourceName":"lib/light-account/src/LightAccountFactory.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts\\core/BaseAccount.sol","lib/light-account/lib/account-abstraction/contracts\\core/Helpers.sol","lib/light-account/lib/account-abstraction/contracts/core/UserOperationLib.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAccount.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IEntryPoint.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol","lib/light-account/lib/account-abstraction/contracts\\samples/callback/TokenCallbackHandler.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/access/Ownable.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/access/Ownable2Step.sol","lib/light-account/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC1155/IERC1155Receiver.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC20/IERC20.sol","lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC20/utils/SafeERC20.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC721/IERC721Receiver.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/Address.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/Strings.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/ECDSA.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/MessageHashUtils.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/SignatureChecker.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/ERC165Checker.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","lib/light-account/src/LightAccount.sol","lib/light-account/src/common/BaseLightAccount.sol","lib/light-account/src/common/BaseLightAccountFactory.sol","lib/light-account/src/common/CustomSlotInitializable.sol","lib/light-account/src/common/ERC1271.sol","lib/light-account/src/external/solady/EIP712.sol","lib/light-account/src/external/solady/LibClone.sol","lib/light-account/src/external/solady/UUPSUpgradeable.sol"],"versionRequirement":"^0.8.23","artifacts":{"LightAccountFactory":{"0.8.27":{"path":"LightAccountFactory.sol\\LightAccountFactory.json","build_id":"c2806ec254aef22770f8fd8537112124"}}},"seenByCompiler":true},"lib/light-account/src/common/BaseLightAccount.sol":{"lastModificationDate":1727956616525,"contentHash":"10430e8b579896a36ad3e72786325afa","sourceName":"lib/light-account/src/common/BaseLightAccount.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts\\core/BaseAccount.sol","lib/light-account/lib/account-abstraction/contracts\\core/Helpers.sol","lib/light-account/lib/account-abstraction/contracts/core/UserOperationLib.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAccount.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IEntryPoint.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol","lib/light-account/lib/account-abstraction/contracts\\samples/callback/TokenCallbackHandler.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC1155/IERC1155Receiver.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC721/IERC721Receiver.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/IERC165.sol","lib/light-account/src/common/ERC1271.sol","lib/light-account/src/external/solady/EIP712.sol","lib/light-account/src/external/solady/UUPSUpgradeable.sol"],"versionRequirement":"^0.8.23","artifacts":{"BaseLightAccount":{"0.8.27":{"path":"BaseLightAccount.sol\\BaseLightAccount.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/src/common/BaseLightAccountFactory.sol":{"lastModificationDate":1727956616525,"contentHash":"04d7ec7325afd3f1fce41d33b0d1b994","sourceName":"lib/light-account/src/common/BaseLightAccountFactory.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IEntryPoint.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/access/Ownable.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/access/Ownable2Step.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC20/IERC20.sol","lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC20/utils/SafeERC20.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/Address.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/ERC165Checker.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.23","artifacts":{"BaseLightAccountFactory":{"0.8.27":{"path":"BaseLightAccountFactory.sol\\BaseLightAccountFactory.json","build_id":"c2806ec254aef22770f8fd8537112124"}}},"seenByCompiler":true},"lib/light-account/src/common/CustomSlotInitializable.sol":{"lastModificationDate":1727956616526,"contentHash":"8859a8695544b7172e42909247381af8","sourceName":"lib/light-account/src/common/CustomSlotInitializable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.23","artifacts":{"CustomSlotInitializable":{"0.8.27":{"path":"CustomSlotInitializable.sol\\CustomSlotInitializable.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/src/common/ERC1271.sol":{"lastModificationDate":1727956616526,"contentHash":"828b969da0a7b81f890268426cb00aae","sourceName":"lib/light-account/src/common/ERC1271.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/src/external/solady/EIP712.sol"],"versionRequirement":"^0.8.23","artifacts":{"ERC1271":{"0.8.27":{"path":"ERC1271.sol\\ERC1271.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/src/external/solady/EIP712.sol":{"lastModificationDate":1727956616527,"contentHash":"ee0cad211cd123b2053980c48786b9c6","sourceName":"lib/light-account/src/external/solady/EIP712.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.4","artifacts":{"EIP712":{"0.8.27":{"path":"EIP712.sol\\EIP712.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"lib/light-account/src/external/solady/LibClone.sol":{"lastModificationDate":1727956616527,"contentHash":"73ee7c7daf7c85a33bee74168209bf1d","sourceName":"lib/light-account/src/external/solady/LibClone.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.4","artifacts":{"LibClone":{"0.8.27":{"path":"LibClone.sol\\LibClone.json","build_id":"c2806ec254aef22770f8fd8537112124"}}},"seenByCompiler":true},"lib/light-account/src/external/solady/UUPSUpgradeable.sol":{"lastModificationDate":1727956616527,"contentHash":"6b4de3aa02b577c654ec91ca7520798b","sourceName":"lib/light-account/src/external/solady/UUPSUpgradeable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.4","artifacts":{"UUPSUpgradeable":{"0.8.27":{"path":"UUPSUpgradeable.sol\\UUPSUpgradeable.json","build_id":"14a03844074d052d409b885176959fa8"}}},"seenByCompiler":true},"src/BLSLightAccount.sol":{"lastModificationDate":1727963871561,"contentHash":"c8bbf7f56fab945c1e60544b7d646c69","sourceName":"src/BLSLightAccount.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts\\core/BaseAccount.sol","lib/light-account/lib/account-abstraction/contracts\\core/Helpers.sol","lib/light-account/lib/account-abstraction/contracts/core/UserOperationLib.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAccount.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IEntryPoint.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol","lib/light-account/lib/account-abstraction/contracts\\samples/callback/TokenCallbackHandler.sol","lib/light-account/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC1155/IERC1155Receiver.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC721/IERC721Receiver.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/Strings.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/ECDSA.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/MessageHashUtils.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/SignatureChecker.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","lib/light-account/src/LightAccount.sol","lib/light-account/src/common/BaseLightAccount.sol","lib/light-account/src/common/CustomSlotInitializable.sol","lib/light-account/src/common/ERC1271.sol","lib/light-account/src/external/solady/EIP712.sol","lib/light-account/src/external/solady/UUPSUpgradeable.sol"],"versionRequirement":"^0.8.23","artifacts":{"BLSLightAccount":{"0.8.27":{"path":"BLSLightAccount.sol\\BLSLightAccount.json","build_id":"f465cbe6ee4a9601354f794749d96337"}}},"seenByCompiler":true},"test/BLSLightAccount.sol":{"lastModificationDate":1727964768030,"contentHash":"a0b2055951db8c62bba83c4f270eef68","sourceName":"test/BLSLightAccount.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Base.sol","lib/forge-std/src/StdAssertions.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdError.sol","lib/forge-std/src/StdInvariant.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdToml.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src\\Test.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol","lib/forge-std/src/safeconsole.sol","lib/light-account/lib/account-abstraction/contracts\\core/BaseAccount.sol","lib/light-account/lib/account-abstraction/contracts/core/EntryPoint.sol","lib/light-account/lib/account-abstraction/contracts\\core/Helpers.sol","lib/light-account/lib/account-abstraction/contracts/core/NonceManager.sol","lib/light-account/lib/account-abstraction/contracts/core/SenderCreator.sol","lib/light-account/lib/account-abstraction/contracts/core/StakeManager.sol","lib/light-account/lib/account-abstraction/contracts/core/UserOperationLib.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAccount.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAccountExecute.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IEntryPoint.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IPaymaster.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol","lib/light-account/lib/account-abstraction/contracts\\samples/callback/TokenCallbackHandler.sol","lib/light-account/lib/account-abstraction/contracts/utils/Exec.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/access/Ownable.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/access/Ownable2Step.sol","lib/light-account/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC1155/IERC1155Receiver.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC20/IERC20.sol","lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC20/utils/SafeERC20.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC721/IERC721Receiver.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/Address.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/Context.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/ReentrancyGuard.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/Strings.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/ECDSA.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/MessageHashUtils.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/SignatureChecker.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/ERC165.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/ERC165Checker.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","lib/light-account/src/LightAccount.sol","lib/light-account/src/LightAccountFactory.sol","lib/light-account/src/common/BaseLightAccount.sol","lib/light-account/src/common/BaseLightAccountFactory.sol","lib/light-account/src/common/CustomSlotInitializable.sol","lib/light-account/src/common/ERC1271.sol","lib/light-account/src/external/solady/EIP712.sol","lib/light-account/src/external/solady/LibClone.sol","lib/light-account/src/external/solady/UUPSUpgradeable.sol","src\\BLSLightAccount.sol"],"versionRequirement":"^0.8.0","artifacts":{"BLSLightAccountTest":{"0.8.27":{"path":"BLSLightAccount.sol\\BLSLightAccountTest.json","build_id":"c2806ec254aef22770f8fd8537112124"}}},"seenByCompiler":true}},"builds":["14a03844074d052d409b885176959fa8","7904bc302237ce5cc0b58832e7f3b74c","c2806ec254aef22770f8fd8537112124","f465cbe6ee4a9601354f794749d96337"]} \ No newline at end of file +{"_format":"","paths":{"artifacts":"out","build_infos":"out/build-info","sources":"src","tests":"test","scripts":"script","libraries":["lib"]},"files":{"lib/forge-std/src/Base.sol":{"lastModificationDate":1727956088662,"contentHash":"ee13c050b1914464f1d3f90cde90204b","sourceName":"lib/forge-std/src/Base.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/StdStorage.sol","lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"CommonBase":{"0.8.27":{"path":"Base.sol\\CommonBase.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}},"ScriptBase":{"0.8.27":{"path":"Base.sol\\ScriptBase.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}},"TestBase":{"0.8.27":{"path":"Base.sol\\TestBase.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/StdAssertions.sol":{"lastModificationDate":1727956088663,"contentHash":"25b77f9806b64d497b8a46aeb8e5f6f0","sourceName":"lib/forge-std/src/StdAssertions.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdAssertions":{"0.8.27":{"path":"StdAssertions.sol\\StdAssertions.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/StdChains.sol":{"lastModificationDate":1727956088663,"contentHash":"b039727c96bb3d5b9a59448fd16b1e0f","sourceName":"lib/forge-std/src/StdChains.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdChains":{"0.8.27":{"path":"StdChains.sol\\StdChains.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/StdCheats.sol":{"lastModificationDate":1727956088663,"contentHash":"96c712134b63f85d00461749d0c1611c","sourceName":"lib/forge-std/src/StdCheats.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/StdStorage.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdCheats":{"0.8.27":{"path":"StdCheats.sol\\StdCheats.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}},"StdCheatsSafe":{"0.8.27":{"path":"StdCheats.sol\\StdCheatsSafe.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/StdError.sol":{"lastModificationDate":1727956088664,"contentHash":"64c896e1276a291776e5ea5aecb3870a","sourceName":"lib/forge-std/src/StdError.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdError":{"0.8.27":{"path":"StdError.sol\\stdError.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/StdInvariant.sol":{"lastModificationDate":1727956088664,"contentHash":"f16837d0e7cb829544ae1f1319ea7643","sourceName":"lib/forge-std/src/StdInvariant.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdInvariant":{"0.8.27":{"path":"StdInvariant.sol\\StdInvariant.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/StdJson.sol":{"lastModificationDate":1727956088664,"contentHash":"02209da5708eaee03e24a9c24a687370","sourceName":"lib/forge-std/src/StdJson.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.0, <0.9.0","artifacts":{"stdJson":{"0.8.27":{"path":"StdJson.sol\\stdJson.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/StdMath.sol":{"lastModificationDate":1727956088664,"contentHash":"9da8f453eba6bb98f3d75bc6822bfb29","sourceName":"lib/forge-std/src/StdMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdMath":{"0.8.27":{"path":"StdMath.sol\\stdMath.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/StdStorage.sol":{"lastModificationDate":1727956088665,"contentHash":"ce68f6e336944f16d31351a47d0b19b8","sourceName":"lib/forge-std/src/StdStorage.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"stdStorage":{"0.8.27":{"path":"StdStorage.sol\\stdStorage.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}},"stdStorageSafe":{"0.8.27":{"path":"StdStorage.sol\\stdStorageSafe.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/StdStyle.sol":{"lastModificationDate":1727956088665,"contentHash":"6281165a12aa639705c691fccefd855e","sourceName":"lib/forge-std/src/StdStyle.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{"StdStyle":{"0.8.27":{"path":"StdStyle.sol\\StdStyle.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/StdToml.sol":{"lastModificationDate":1727956088665,"contentHash":"4bce85a4c60f2c073e651ee8140bcb4d","sourceName":"lib/forge-std/src/StdToml.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol"],"versionRequirement":">=0.6.0, <0.9.0","artifacts":{"stdToml":{"0.8.27":{"path":"StdToml.sol\\stdToml.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/StdUtils.sol":{"lastModificationDate":1727956088666,"contentHash":"b50717f17f251a2a96a5884c90add7bf","sourceName":"lib/forge-std/src/StdUtils.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Vm.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"StdUtils":{"0.8.27":{"path":"StdUtils.sol\\StdUtils.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/Test.sol":{"lastModificationDate":1727956088666,"contentHash":"b6f15605355fc8c421fe42a90f94bf32","sourceName":"lib/forge-std/src/Test.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Base.sol","lib/forge-std/src/StdAssertions.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdError.sol","lib/forge-std/src/StdInvariant.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdToml.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol","lib/forge-std/src/safeconsole.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"Test":{"0.8.27":{"path":"Test.sol\\Test.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/Vm.sol":{"lastModificationDate":1727956088667,"contentHash":"5928f469b3646114f329b4129fcf2401","sourceName":"lib/forge-std/src/Vm.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"Vm":{"0.8.27":{"path":"Vm.sol\\Vm.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}},"VmSafe":{"0.8.27":{"path":"Vm.sol\\VmSafe.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/console.sol":{"lastModificationDate":1727956088667,"contentHash":"ce19a9e49945b42118379ff99d853c05","sourceName":"lib/forge-std/src/console.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{"console":{"0.8.27":{"path":"console.sol\\console.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/console2.sol":{"lastModificationDate":1727956088668,"contentHash":"f65ad21034b111e70fb5342d5771efcd","sourceName":"lib/forge-std/src/console2.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/console.sol"],"versionRequirement":">=0.4.22, <0.9.0","artifacts":{},"seenByCompiler":true},"lib/forge-std/src/interfaces/IERC165.sol":{"lastModificationDate":1727956088668,"contentHash":"90fe5e2e3ed432d6f3b408e7c9e8a739","sourceName":"lib/forge-std/src/interfaces/IERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2","artifacts":{"IERC165":{"0.8.27":{"path":"interfaces\\IERC165.sol\\IERC165.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/interfaces/IERC20.sol":{"lastModificationDate":1727956088668,"contentHash":"8099161d518e5862a76750349d58e801","sourceName":"lib/forge-std/src/interfaces/IERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2","artifacts":{"IERC20":{"0.8.27":{"path":"IERC20.sol\\IERC20.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/interfaces/IERC721.sol":{"lastModificationDate":1727956088669,"contentHash":"efc26e7f9a2f76b68088c8760ceae2dc","sourceName":"lib/forge-std/src/interfaces/IERC721.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/interfaces/IERC165.sol"],"versionRequirement":">=0.6.2","artifacts":{"IERC721":{"0.8.27":{"path":"IERC721.sol\\IERC721.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}},"IERC721Enumerable":{"0.8.27":{"path":"IERC721.sol\\IERC721Enumerable.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}},"IERC721Metadata":{"0.8.27":{"path":"IERC721.sol\\IERC721Metadata.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}},"IERC721TokenReceiver":{"0.8.27":{"path":"IERC721.sol\\IERC721TokenReceiver.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/interfaces/IMulticall3.sol":{"lastModificationDate":1727956088670,"contentHash":"7b131ca1ca32ef6378b7b9ad5488b901","sourceName":"lib/forge-std/src/interfaces/IMulticall3.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"IMulticall3":{"0.8.27":{"path":"IMulticall3.sol\\IMulticall3.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/mocks/MockERC20.sol":{"lastModificationDate":1727956088670,"contentHash":"8e14d63e81e1d54dbc2d44df38ae9dec","sourceName":"lib/forge-std/src/mocks/MockERC20.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/interfaces/IERC20.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"MockERC20":{"0.8.27":{"path":"MockERC20.sol\\MockERC20.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/mocks/MockERC721.sol":{"lastModificationDate":1727956088670,"contentHash":"e91cd9dba7f88f03710c56a347d89d1e","sourceName":"lib/forge-std/src/mocks/MockERC721.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC721.sol"],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"MockERC721":{"0.8.27":{"path":"MockERC721.sol\\MockERC721.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/forge-std/src/safeconsole.sol":{"lastModificationDate":1727956088671,"contentHash":"1445aa2f47000e212173e0cefd6c7a77","sourceName":"lib/forge-std/src/safeconsole.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.6.2, <0.9.0","artifacts":{"safeconsole":{"0.8.27":{"path":"safeconsole.sol\\safeconsole.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/core/BaseAccount.sol":{"lastModificationDate":1727956670143,"contentHash":"72f8c2b16f0bd40a373c86ecc12facb3","sourceName":"lib/light-account/lib/account-abstraction/contracts/core/BaseAccount.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts\\core/Helpers.sol","lib/light-account/lib/account-abstraction/contracts/core/UserOperationLib.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAccount.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","lib/light-account/lib/account-abstraction/contracts\\interfaces/IEntryPoint.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","lib/light-account/lib/account-abstraction/contracts\\interfaces/PackedUserOperation.sol"],"versionRequirement":"^0.8.23","artifacts":{"BaseAccount":{"0.8.27":{"path":"BaseAccount.sol\\BaseAccount.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/core/EntryPoint.sol":{"lastModificationDate":1727956670144,"contentHash":"c4f2ff4a5a94a5813047f515beb7dc88","sourceName":"lib/light-account/lib/account-abstraction/contracts/core/EntryPoint.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts\\core/Helpers.sol","lib/light-account/lib/account-abstraction/contracts/core/NonceManager.sol","lib/light-account/lib/account-abstraction/contracts/core/SenderCreator.sol","lib/light-account/lib/account-abstraction/contracts/core/StakeManager.sol","lib/light-account/lib/account-abstraction/contracts/core/UserOperationLib.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAccount.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAccountExecute.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","lib/light-account/lib/account-abstraction/contracts\\interfaces/IEntryPoint.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IPaymaster.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","lib/light-account/lib/account-abstraction/contracts\\interfaces/PackedUserOperation.sol","lib/light-account/lib/account-abstraction/contracts/utils/Exec.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/ReentrancyGuard.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/ERC165.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.23","artifacts":{"EntryPoint":{"0.8.27":{"path":"EntryPoint.sol\\EntryPoint.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/core/Helpers.sol":{"lastModificationDate":1727956670144,"contentHash":"d9a3c7fc04ae5f3fc8011d8792e8cb18","sourceName":"lib/light-account/lib/account-abstraction/contracts/core/Helpers.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.23","artifacts":{},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/core/NonceManager.sol":{"lastModificationDate":1727956670144,"contentHash":"a127aeed000517349e4d579991cc1b5d","sourceName":"lib/light-account/lib/account-abstraction/contracts/core/NonceManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol"],"versionRequirement":"^0.8.23","artifacts":{"NonceManager":{"0.8.27":{"path":"NonceManager.sol\\NonceManager.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/core/SenderCreator.sol":{"lastModificationDate":1727956670145,"contentHash":"c4cda983dfb4422cd413360a23ed244a","sourceName":"lib/light-account/lib/account-abstraction/contracts/core/SenderCreator.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.23","artifacts":{"SenderCreator":{"0.8.27":{"path":"SenderCreator.sol\\SenderCreator.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/core/StakeManager.sol":{"lastModificationDate":1727956670145,"contentHash":"9857ed1921becf91ccf93ca0de9db0b5","sourceName":"lib/light-account/lib/account-abstraction/contracts/core/StakeManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol"],"versionRequirement":"^0.8.23","artifacts":{"StakeManager":{"0.8.27":{"path":"StakeManager.sol\\StakeManager.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/core/UserOperationLib.sol":{"lastModificationDate":1727956670145,"contentHash":"49e8ce45c96e09cb83ff7d1d2e72e448","sourceName":"lib/light-account/lib/account-abstraction/contracts/core/UserOperationLib.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts\\core/Helpers.sol","lib/light-account/lib/account-abstraction/contracts\\interfaces/PackedUserOperation.sol"],"versionRequirement":"^0.8.23","artifacts":{"UserOperationLib":{"0.8.27":{"path":"UserOperationLib.sol\\UserOperationLib.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/interfaces/IAccount.sol":{"lastModificationDate":1727956670146,"contentHash":"1f8a384da0da6354fdd834d63b24dfd4","sourceName":"lib/light-account/lib/account-abstraction/contracts/interfaces/IAccount.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts\\interfaces/PackedUserOperation.sol"],"versionRequirement":">=0.7.5","artifacts":{"IAccount":{"0.8.27":{"path":"IAccount.sol\\IAccount.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/interfaces/IAccountExecute.sol":{"lastModificationDate":1727956670146,"contentHash":"29ded9a414cc72b0b85e3edaa357c9d8","sourceName":"lib/light-account/lib/account-abstraction/contracts/interfaces/IAccountExecute.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts\\interfaces/PackedUserOperation.sol"],"versionRequirement":">=0.7.5","artifacts":{"IAccountExecute":{"0.8.27":{"path":"IAccountExecute.sol\\IAccountExecute.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol":{"lastModificationDate":1727956670146,"contentHash":"ea70aa8db36795540523cebf73f66469","sourceName":"lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts\\interfaces/PackedUserOperation.sol"],"versionRequirement":">=0.7.5","artifacts":{"IAggregator":{"0.8.27":{"path":"IAggregator.sol\\IAggregator.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/interfaces/IEntryPoint.sol":{"lastModificationDate":1727956670147,"contentHash":"d201c25e2806de5038e53c646f93810c","sourceName":"lib/light-account/lib/account-abstraction/contracts/interfaces/IEntryPoint.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","lib/light-account/lib/account-abstraction/contracts\\interfaces/PackedUserOperation.sol"],"versionRequirement":">=0.7.5","artifacts":{"IEntryPoint":{"0.8.27":{"path":"IEntryPoint.sol\\IEntryPoint.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol":{"lastModificationDate":1727962747847,"contentHash":"2865a605d4aece6b0d511f573003d167","sourceName":"lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.7.5","artifacts":{"INonceManager":{"0.8.27":{"path":"INonceManager.sol\\INonceManager.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/interfaces/IPaymaster.sol":{"lastModificationDate":1727956670148,"contentHash":"0edfe2232b7eb455a17ebaacd0d09243","sourceName":"lib/light-account/lib/account-abstraction/contracts/interfaces/IPaymaster.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts\\interfaces/PackedUserOperation.sol"],"versionRequirement":">=0.7.5","artifacts":{"IPaymaster":{"0.8.27":{"path":"IPaymaster.sol\\IPaymaster.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol":{"lastModificationDate":1727956670148,"contentHash":"8a37b39cb2b2d53efcd76e8d6af616ff","sourceName":"lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.7.5","artifacts":{"IStakeManager":{"0.8.27":{"path":"IStakeManager.sol\\IStakeManager.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol":{"lastModificationDate":1727958836937,"contentHash":"6cdfe05be923cdc6051633ff1614e956","sourceName":"lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":">=0.7.5","artifacts":{},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/samples/callback/TokenCallbackHandler.sol":{"lastModificationDate":1727956670155,"contentHash":"7c2d395a28e99da6bca5756ead9bbf8e","sourceName":"lib/light-account/lib/account-abstraction/contracts/samples/callback/TokenCallbackHandler.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC1155/IERC1155Receiver.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC721/IERC721Receiver.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.23","artifacts":{"TokenCallbackHandler":{"0.8.27":{"path":"TokenCallbackHandler.sol\\TokenCallbackHandler.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/account-abstraction/contracts/utils/Exec.sol":{"lastModificationDate":1727956670162,"contentHash":"8156fbf5a7fe2e169f75483db6787860","sourceName":"lib/light-account/lib/account-abstraction/contracts/utils/Exec.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.23","artifacts":{"Exec":{"0.8.27":{"path":"Exec.sol\\Exec.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol":{"lastModificationDate":1727956726452,"contentHash":"12a8c0358597a0dc191410b1259e61ee","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC1271":{"0.8.27":{"path":"IERC1271.sol\\IERC1271.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol":{"lastModificationDate":1727956726506,"contentHash":"d14616defa6d417fafa47e416e3cec73","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"IERC1155Receiver":{"0.8.27":{"path":"IERC1155Receiver.sol\\IERC1155Receiver.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"lastModificationDate":1727956726517,"contentHash":"fc8a9841f4bdd6329c26a00d5e75f4b3","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC721Receiver":{"0.8.27":{"path":"IERC721Receiver.sol\\IERC721Receiver.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"lastModificationDate":1727956726528,"contentHash":"a92331adac11b453a4de0323fc948119","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"ReentrancyGuard":{"0.8.27":{"path":"ReentrancyGuard.sol\\ReentrancyGuard.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"lastModificationDate":1727956726529,"contentHash":"ba57ff4ddf1d9cae9d2009792795b7f6","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/Strings.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol"],"versionRequirement":"^0.8.20","artifacts":{"Strings":{"0.8.27":{"path":"Strings.sol\\Strings.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"lastModificationDate":1727956726530,"contentHash":"b96e0d7a3c2b185342c7d083d765b61f","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"ECDSA":{"0.8.27":{"path":"ECDSA.sol\\ECDSA.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"lastModificationDate":1727956726531,"contentHash":"9e5eec59eaffa554d6cca561dcb914eb","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/openzeppelin-contracts/contracts/utils/Strings.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol"],"versionRequirement":"^0.8.20","artifacts":{"MessageHashUtils":{"0.8.27":{"path":"MessageHashUtils.sol\\MessageHashUtils.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol":{"lastModificationDate":1727956726531,"contentHash":"67e1b232791e1ea1cf6475bd4aaed191","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/ECDSA.sol"],"versionRequirement":"^0.8.20","artifacts":{"SignatureChecker":{"0.8.27":{"path":"SignatureChecker.sol\\SignatureChecker.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"lastModificationDate":1727956726532,"contentHash":"6a55c353946e471d9792965d06208295","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/IERC165.sol"],"versionRequirement":"^0.8.20","artifacts":{"ERC165":{"0.8.27":{"path":"ERC165.sol\\ERC165.json","build_id":"5860657d27e709293a6b4f4ff36a6b10"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"lastModificationDate":1727956726533,"contentHash":"de0163561b417b800d01749cbbe2147e","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"IERC165":{"0.8.27":{"path":"IERC165.sol\\IERC165.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"lastModificationDate":1727956726534,"contentHash":"718fa8ba0ff269c92e364c1429d9de57","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/Math.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"Math":{"0.8.27":{"path":"Math.sol\\Math.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"lastModificationDate":1727956726535,"contentHash":"b6c6bdc7aaca4fe5b680760a72e09d3e","sourceName":"lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.20","artifacts":{"SignedMath":{"0.8.27":{"path":"SignedMath.sol\\SignedMath.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/src/common/BaseLightAccount.sol":{"lastModificationDate":1727956616525,"contentHash":"10430e8b579896a36ad3e72786325afa","sourceName":"lib/light-account/src/common/BaseLightAccount.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts\\core/BaseAccount.sol","lib/light-account/lib/account-abstraction/contracts\\core/Helpers.sol","lib/light-account/lib/account-abstraction/contracts/core/UserOperationLib.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAccount.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","lib/light-account/lib/account-abstraction/contracts\\interfaces/IEntryPoint.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","lib/light-account/lib/account-abstraction/contracts\\interfaces/PackedUserOperation.sol","lib/light-account/lib/account-abstraction/contracts\\samples/callback/TokenCallbackHandler.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC1155/IERC1155Receiver.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC721/IERC721Receiver.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/IERC165.sol","lib/light-account/src/common/ERC1271.sol","lib/light-account/src/external/solady/EIP712.sol","lib/light-account/src/external/solady/UUPSUpgradeable.sol"],"versionRequirement":"^0.8.23","artifacts":{"BaseLightAccount":{"0.8.27":{"path":"BaseLightAccount.sol\\BaseLightAccount.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/src/common/CustomSlotInitializable.sol":{"lastModificationDate":1727956616526,"contentHash":"8859a8695544b7172e42909247381af8","sourceName":"lib/light-account/src/common/CustomSlotInitializable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.23","artifacts":{"CustomSlotInitializable":{"0.8.27":{"path":"CustomSlotInitializable.sol\\CustomSlotInitializable.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/src/common/ERC1271.sol":{"lastModificationDate":1727956616526,"contentHash":"828b969da0a7b81f890268426cb00aae","sourceName":"lib/light-account/src/common/ERC1271.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/src/external/solady/EIP712.sol"],"versionRequirement":"^0.8.23","artifacts":{"ERC1271":{"0.8.27":{"path":"ERC1271.sol\\ERC1271.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/src/external/solady/EIP712.sol":{"lastModificationDate":1727956616527,"contentHash":"ee0cad211cd123b2053980c48786b9c6","sourceName":"lib/light-account/src/external/solady/EIP712.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.4","artifacts":{"EIP712":{"0.8.27":{"path":"EIP712.sol\\EIP712.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"lib/light-account/src/external/solady/UUPSUpgradeable.sol":{"lastModificationDate":1727956616527,"contentHash":"6b4de3aa02b577c654ec91ca7520798b","sourceName":"lib/light-account/src/external/solady/UUPSUpgradeable.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":[],"versionRequirement":"^0.8.4","artifacts":{"UUPSUpgradeable":{"0.8.27":{"path":"UUPSUpgradeable.sol\\UUPSUpgradeable.json","build_id":"18e48785cf879a4c6695b26209e67d9d"}}},"seenByCompiler":true},"src/BLSLightAccount.sol":{"lastModificationDate":1728007056492,"contentHash":"5e50133c04e20d519e895e2e450f0ac8","sourceName":"src/BLSLightAccount.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/light-account/lib/account-abstraction/contracts\\core/BaseAccount.sol","lib/light-account/lib/account-abstraction/contracts\\core/Helpers.sol","lib/light-account/lib/account-abstraction/contracts/core/UserOperationLib.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAccount.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","lib/light-account/lib/account-abstraction/contracts\\interfaces/IEntryPoint.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","lib/light-account/lib/account-abstraction/contracts\\interfaces/PackedUserOperation.sol","lib/light-account/lib/account-abstraction/contracts\\samples/callback/TokenCallbackHandler.sol","lib/light-account/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC1155/IERC1155Receiver.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC721/IERC721Receiver.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/Strings.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/ECDSA.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/MessageHashUtils.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/SignatureChecker.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/IERC165.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","lib/light-account\\src/common/BaseLightAccount.sol","lib/light-account\\src/common/CustomSlotInitializable.sol","lib/light-account/src/common/ERC1271.sol","lib/light-account/src/external/solady/EIP712.sol","lib/light-account/src/external/solady/UUPSUpgradeable.sol"],"versionRequirement":"^0.8.23","artifacts":{"BLSLightAccount":{"0.8.27":{"path":"BLSLightAccount.sol\\BLSLightAccount.json","build_id":"59d18d32e72c8fe4ce556e1f1073070c"}}},"seenByCompiler":true},"test/BLSLightAccount.sol":{"lastModificationDate":1728007770281,"contentHash":"8adc5d86ab411fa06bb074b8112a4b95","sourceName":"test/BLSLightAccount.sol","compilerSettings":{"solc":{"optimizer":{"enabled":true,"runs":200},"metadata":{"useLiteralContent":false,"bytecodeHash":"ipfs","appendCBOR":true},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"]}},"evmVersion":"paris","viaIR":false,"libraries":{}},"vyper":{"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode"]}}}},"imports":["lib/forge-std/src/Base.sol","lib/forge-std/src/StdAssertions.sol","lib/forge-std/src/StdChains.sol","lib/forge-std/src/StdCheats.sol","lib/forge-std/src/StdError.sol","lib/forge-std/src/StdInvariant.sol","lib/forge-std/src/StdJson.sol","lib/forge-std/src/StdMath.sol","lib/forge-std/src/StdStorage.sol","lib/forge-std/src/StdStyle.sol","lib/forge-std/src/StdToml.sol","lib/forge-std/src/StdUtils.sol","lib/forge-std/src\\Test.sol","lib/forge-std/src/Vm.sol","lib/forge-std/src/console.sol","lib/forge-std/src/console2.sol","lib/forge-std/src/interfaces/IERC165.sol","lib/forge-std/src/interfaces/IERC20.sol","lib/forge-std/src/interfaces/IERC721.sol","lib/forge-std/src/interfaces/IMulticall3.sol","lib/forge-std/src/mocks/MockERC20.sol","lib/forge-std/src/mocks/MockERC721.sol","lib/forge-std/src/safeconsole.sol","lib/light-account/lib/account-abstraction/contracts\\core/BaseAccount.sol","lib/light-account\\lib/account-abstraction/contracts/core/EntryPoint.sol","lib/light-account/lib/account-abstraction/contracts\\core/Helpers.sol","lib/light-account/lib/account-abstraction/contracts/core/NonceManager.sol","lib/light-account/lib/account-abstraction/contracts/core/SenderCreator.sol","lib/light-account/lib/account-abstraction/contracts/core/StakeManager.sol","lib/light-account/lib/account-abstraction/contracts/core/UserOperationLib.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAccount.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAccountExecute.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IAggregator.sol","lib/light-account/lib/account-abstraction/contracts\\interfaces/IEntryPoint.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/INonceManager.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IPaymaster.sol","lib/light-account/lib/account-abstraction/contracts/interfaces/IStakeManager.sol","lib/light-account/lib/account-abstraction/contracts\\interfaces/PackedUserOperation.sol","lib/light-account/lib/account-abstraction/contracts\\samples/callback/TokenCallbackHandler.sol","lib/light-account/lib/account-abstraction/contracts/utils/Exec.sol","lib/light-account/lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC1155/IERC1155Receiver.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/token/ERC721/IERC721Receiver.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/ReentrancyGuard.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/Strings.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/ECDSA.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/MessageHashUtils.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/cryptography/SignatureChecker.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/ERC165.sol","lib/light-account/lib/openzeppelin-contracts\\contracts/utils/introspection/IERC165.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/Math.sol","lib/light-account/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol","lib/light-account\\src/common/BaseLightAccount.sol","lib/light-account\\src/common/CustomSlotInitializable.sol","lib/light-account/src/common/ERC1271.sol","lib/light-account/src/external/solady/EIP712.sol","lib/light-account/src/external/solady/UUPSUpgradeable.sol","src\\BLSLightAccount.sol"],"versionRequirement":"^0.8.0","artifacts":{"BLSLightAccountTest":{"0.8.27":{"path":"BLSLightAccount.sol\\BLSLightAccountTest.json","build_id":"2c335ee4f4cb41678b70f4a47450c538"}}},"seenByCompiler":true}},"builds":["18e48785cf879a4c6695b26209e67d9d","2c335ee4f4cb41678b70f4a47450c538","5860657d27e709293a6b4f4ff36a6b10","59d18d32e72c8fe4ce556e1f1073070c"]} \ No newline at end of file diff --git a/src/BLSLightAccount.sol b/src/BLSLightAccount.sol index cb42187..33bc4de 100644 --- a/src/BLSLightAccount.sol +++ b/src/BLSLightAccount.sol @@ -1,85 +1,126 @@ // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.23; -//the key components of this new BLSLightAccount contract: -// We inherit from LightAccount to maintain all original functionality. -// We introduce a new storage struct BLSAccountStorage to store the BLS public key. -// We override the initialize function to include setting the BLS public key. -// We add a setBlsPublicKey function to allow updating the BLS public key. -// We override the _validateSignature function to handle BLS signatures. -// We introduce a placeholder _validateBLSSignature function that needs to be implemented. - -// TODO: Implement the BLS signature validation logic in _validateBLSSignature. -// Done: Update the SignatureType enum in BaseLightAccount to include the BLS type. -// Possibly integrate with a BLS library for the necessary cryptographic operations. - -import "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; -import {LightAccount} from "../lib/light-account/src/LightAccount.sol"; -import {IEntryPoint} from "../lib/light-account/lib/account-abstraction/contracts/interfaces/IEntryPoint.sol"; -import {PackedUserOperation} from "../lib/light-account/lib/account-abstraction/contracts/interfaces/PackedUserOperation.sol"; - -/// @title A LightAccount with added BLS signature support -/// @dev Extends LightAccount to support BLS signatures for user operations -contract BLSLightAccount is LightAccount { - // BLS-specific storage - struct BLSAccountStorage { - bytes32 blsPublicKey; +import {ECDSA} from "@openzeppelin/contracts/utils/cryptography/ECDSA.sol"; +import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; +import {SignatureChecker} from "@openzeppelin/contracts/utils/cryptography/SignatureChecker.sol"; +import {SIG_VALIDATION_FAILED} from "account-abstraction/core/Helpers.sol"; +import {IEntryPoint} from "account-abstraction/interfaces/IEntryPoint.sol"; +import {PackedUserOperation} from "account-abstraction/interfaces/PackedUserOperation.sol"; + +import {BaseLightAccount} from "light-account/src/common/BaseLightAccount.sol"; +import {CustomSlotInitializable} from "light-account/src/common/CustomSlotInitializable.sol"; + +/// @title A simple ERC-4337 compatible smart contract account with a designated owner account. +/// @dev Like eth-infinitism's SimpleAccount, but with the following changes: +/// +/// 1. Instead of the default storage slots, uses namespaced storage to avoid clashes when switching implementations. +/// +/// 2. Ownership can be transferred via `transferOwnership`, similar to the behavior of an `Ownable` contract. This is +/// a simple single-step operation, so care must be taken to ensure that the ownership is being transferred to the +/// correct address. +/// +/// 3. Supports [ERC-1271](https://eips.ethereum.org/EIPS/eip-1271) signature validation for both validating the +/// signature on user operations and in exposing its own `isValidSignature` method. This only works when the owner of +/// LightAccount also support ERC-1271. +/// +/// ERC-4337's bundler validation rules limit the types of contracts that can be used as owners to validate user +/// operation signatures. For example, the contract's `isValidSignature` function may not use any forbidden opcodes +/// such as `TIMESTAMP` or `NUMBER`, and the contract may not be an ERC-1967 proxy as it accesses a constant +/// implementation slot not associated with the account, violating storage access rules. This also means that the +/// owner of a LightAccount may not be another LightAccount if you want to send user operations through a bundler. +/// +/// 4. Event `SimpleAccountInitialized` renamed to `LightAccountInitialized`. +/// +/// 5. Uses custom errors. +contract BLSLightAccount is BaseLightAccount, CustomSlotInitializable { + using ECDSA for bytes32; + using MessageHashUtils for bytes32; + + /// @dev The version used for namespaced storage is not linked to the release version of the contract. Storage + /// versions will be updated only when storage layout changes are made. + /// keccak256(abi.encode(uint256(keccak256("blslight_account_v1.storage")) - 1)) & ~bytes32(uint256(0xff)); + bytes32 internal constant _STORAGE_POSITION = 0x99f82d893aaaf0bfbe72b23177e6b97cf253cbd01abd0d2f793f75ec7cfc2e00; + /// @dev keccak256(abi.encode(uint256(keccak256("blslight_account_v1.initializable")) - 1)) & ~bytes32(uint256(0xff)); + bytes32 internal constant _INITIALIZABLE_STORAGE_POSITION = + 0x6c0a8bfcf5680463be0c279c880b798fd37cd3a6f41eba9aa29d36c2fe945100; + + struct BLSLightAccountStorage { + address owner; } - /// @dev keccak256(abi.encode(uint256(keccak256("bls_light_account_v1.storage")) - 1)) & ~bytes32(uint256(0xff)); - bytes32 private constant _BLS_STORAGE_POSITION = 0x3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e00; - address public _owner; + /// @notice Emitted when this account is first initialized. + /// @param entryPoint The entry point. + /// @param owner The initial owner. + event BLSLightAccountInitialized(IEntryPoint indexed entryPoint, address indexed owner); - event BLSPublicKeySet(bytes32 indexed blsPublicKey); + /// @notice Emitted when this account's owner changes. Also emitted once at initialization, with a + /// `previousOwner` of 0. + /// @param previousOwner The previous owner. + /// @param newOwner The new owner. + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); - error InvalidBLSSignature(); + /// @dev The new owner is not a valid owner (e.g., `address(0)`, the account itself, or the current owner). + error InvalidOwner(address owner); - constructor(IEntryPoint entryPoint_) LightAccount(entryPoint_) {} + constructor(IEntryPoint entryPoint_) CustomSlotInitializable(_INITIALIZABLE_STORAGE_POSITION) { + _ENTRY_POINT = entryPoint_; + // _disableInitializers(); + } - /// @notice Initializes the BLSLightAccount with an owner and a BLS public key - /// @param owner_ The initial owner of the account - /// @param blsPublicKey_ The BLS public key for this account - function initialize(address owner_, bytes32 blsPublicKey_) external initializer { - // super._initialize(owner_); - require(_owner == address(0), "Already initialized"); - _owner = owner_; - _setBlsPublicKey(blsPublicKey_); + /// @notice Called once as part of initialization, either during initial deployment or when first upgrading to + /// this contract. + /// @dev The `_ENTRY_POINT` member is immutable, to reduce gas consumption. To update the entry point address, a new + /// implementation of LightAccount must be deployed with the new entry point address, and then `upgradeToAndCall` + /// must be called to upgrade the implementation. + /// @param owner_ The initial owner of the account. + function initialize(address owner_) external initializer { + _initialize(owner_); } - /// @notice Sets or updates the BLS public key for this account - /// @param blsPublicKey_ The new BLS public key - function setBlsPublicKey(bytes32 blsPublicKey_) external onlyAuthorized { - _setBlsPublicKey(blsPublicKey_); + /// @notice Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current + /// owner or from the entry point via a user operation signed by the current owner. + /// @param newOwner The new owner. + function transferOwnership(address newOwner) external virtual onlyAuthorized { + if (newOwner == address(0) || newOwner == address(this)) { + revert InvalidOwner(newOwner); + } + _transferOwnership(newOwner); + } + + /// @notice Return the current owner of this account. + /// @return The current owner. + function owner() public view returns (address) { + return _getStorage().owner; + } + + function _initialize(address owner_) internal virtual { + if (owner_ == address(0)) { + revert InvalidOwner(address(0)); + } + _getStorage().owner = owner_; + emit BLSLightAccountInitialized(_ENTRY_POINT, owner_); + emit OwnershipTransferred(address(0), owner_); } - /// @notice Returns the current BLS public key for this account - function blsPublicKey() public view returns (bytes32) { - return _getBLSStorage().blsPublicKey; + function _transferOwnership(address newOwner) internal virtual { + BLSLightAccountStorage storage _storage = _getStorage(); + address oldOwner = _storage.owner; + if (newOwner == oldOwner) { + revert InvalidOwner(newOwner); + } + _storage.owner = newOwner; + emit OwnershipTransferred(oldOwner, newOwner); } - /// @dev Overrides the _validateSignature function to support BLS signatures + /// @dev Implement template method of BaseAccount. + /// Uses a modified version of `SignatureChecker.isValidSignatureNow` in which the digest is wrapped with an + /// "Ethereum Signed Message" envelope for the EOA-owner case but not in the ERC-1271 contract-owner case. function _validateSignature(PackedUserOperation calldata userOp, bytes32 userOpHash) internal virtual override returns (uint256 validationData) - { - // if (userOp.signature.length >= 1) { - // uint8 signatureType = uint8(userOp.signature[0]); - // if (signatureType == uint8(SignatureType.BLS)) { - // // BLS signature validation - // return _validateBLSSignature(userOp, userOpHash); - // } - // } - // If not a BLS signature, fall back to the original validation - return super._validateSignature(userOp, userOpHash); - } - - /// @dev Validates a BLS signature - function _validateBLSSignature(PackedUserOperation calldata userOp, bytes32 userOpHash) - internal - view - returns (uint256) { if (userOp.signature.length < 1) { revert InvalidSignatureType(); @@ -87,7 +128,7 @@ contract BLSLightAccount is LightAccount { uint8 signatureType = uint8(userOp.signature[0]); if (signatureType == uint8(SignatureType.EOA)) { // EOA signature - bytes32 signedHash = MessageHashUtils.toEthSignedMessageHash(userOpHash); + bytes32 signedHash = userOpHash.toEthSignedMessageHash(); bytes memory signature = userOp.signature[1:]; return _successToValidationData(_isValidEOAOwnerSignature(signedHash, signature)); } else if (signatureType == uint8(SignatureType.CONTRACT)) { @@ -98,15 +139,69 @@ contract BLSLightAccount is LightAccount { revert InvalidSignatureType(); } - function _setBlsPublicKey(bytes32 blsPublicKey_) internal { - _getBLSStorage().blsPublicKey = blsPublicKey_; - emit BLSPublicKeySet(blsPublicKey_); + /// @notice Check if the signature is a valid by the EOA owner for the given digest. + /// @dev Only supports 65-byte signatures, and uses the digest directly. Reverts if the signature is malformed. + /// @param digest The digest to be checked. + /// @param signature The signature to be checked. + /// @return True if the signature is valid and by the owner, false otherwise. + function _isValidEOAOwnerSignature(bytes32 digest, bytes memory signature) internal view returns (bool) { + address recovered = digest.recover(signature); + return recovered == owner(); + } + + /// @notice Check if the signature is a valid ERC-1271 signature by a contract owner for the given digest. + /// @param digest The digest to be checked. + /// @param signature The signature to be checked. + /// @return True if the signature is valid and by an owner, false otherwise. + function _isValidContractOwnerSignatureNow(bytes32 digest, bytes memory signature) internal view returns (bool) { + return SignatureChecker.isValidERC1271SignatureNow(owner(), digest, signature); + } + + /// @dev The signature is valid if it is signed by the owner's private key (if the owner is an EOA) or if it is a + /// valid ERC-1271 signature from the owner (if the owner is a contract). Reverts if the signature is malformed. + /// Note that unlike the signature validation used in `validateUserOp`, this does **not** wrap the hash in an + /// "Ethereum Signed Message" envelope before checking the signature in the EOA-owner case. + function _isValidSignature(bytes32 replaySafeHash, bytes calldata signature) + internal + view + virtual + override + returns (bool) + { + if (signature.length < 1) { + revert InvalidSignatureType(); + } + uint8 signatureType = uint8(signature[0]); + if (signatureType == uint8(SignatureType.EOA)) { + // EOA signature + return _isValidEOAOwnerSignature(replaySafeHash, signature[1:]); + } else if (signatureType == uint8(SignatureType.CONTRACT)) { + // Contract signature without address + return _isValidContractOwnerSignatureNow(replaySafeHash, signature[1:]); + } + revert InvalidSignatureType(); + } + + function _domainNameAndVersion() + internal + view + virtual + override + returns (string memory name, string memory version) + { + name = "BLSLightAccount"; + // Set to the major version of the GitHub release at which the contract was last updated. + version = "1"; + } + + function _isFromOwner() internal view virtual override returns (bool) { + return msg.sender == owner(); } - function _getBLSStorage() internal pure returns (BLSAccountStorage storage blsStorageStruct) { - bytes32 position = _BLS_STORAGE_POSITION; + function _getStorage() internal pure returns (BLSLightAccountStorage storage storageStruct) { + bytes32 position = _STORAGE_POSITION; assembly ("memory-safe") { - blsStorageStruct.slot := position + storageStruct.slot := position } } -} \ No newline at end of file +} diff --git a/test/BLSLightAccount.sol b/test/BLSLightAccount.sol index 0b7bcbc..4db84ae 100644 --- a/test/BLSLightAccount.sol +++ b/test/BLSLightAccount.sol @@ -2,32 +2,37 @@ pragma solidity ^0.8.0; import "forge-std/Test.sol"; -import {EntryPoint} from "../lib/light-account/lib/account-abstraction/contracts/core/EntryPoint.sol"; -import {BLSLightAccount, IEntryPoint} from "../src/BLSLightAccount.sol"; -import {LightAccountFactory} from "../lib/light-account/src/LightAccountFactory.sol"; -import {LightAccount} from "../lib/light-account/src/LightAccount.sol"; +import {EntryPoint} from "light-account/lib/account-abstraction/contracts/core/EntryPoint.sol"; +import {BLSLightAccount, IEntryPoint, CustomSlotInitializable} from "../src/BLSLightAccount.sol"; contract BLSLightAccountTest is Test { - address owner = address(this); - IEntryPoint entryPoint; - LightAccountFactory factory; - bytes32 blsPublicKey = keccak256(bytes("blsPublicKey")); - // BLSLightAccount account; - LightAccount public account; - address public eoaAddress; - uint256 public constant EOA_PRIVATE_KEY = 1; + BLSLightAccount account; + EntryPoint entryPoint; function setUp() public { - eoaAddress = vm.addr(EOA_PRIVATE_KEY); entryPoint = new EntryPoint(); - factory = new LightAccountFactory(address(this), entryPoint); - account = factory.createAccount(eoaAddress, 1); + account = new BLSLightAccount(entryPoint); } function testInitialize() public { - assertEq(entryPoint.getNonce(owner, 0), account.getNonce()); - assertNotEq(account.owner(), owner); - // account.initialize(owner, blsPublicKey); - // account.setBlsPublicKey(blsPublicKey); + address owner = address(this); + + // 初始化合约 + account.initialize(owner); + + // 检查初始化后的状态 + assertEq(account.owner(), owner); + } + + function testInitializeRevert() public { + address owner = address(this); + + // 第一次初始化合约 + account.initialize(owner); + + // 尝试再次初始化合约,应该失败 + bytes memory errorSelector = abi.encodeWithSelector(CustomSlotInitializable.InvalidInitialization.selector); + vm.expectRevert(errorSelector); + account.initialize(owner); } } \ No newline at end of file