{"abi":[],"bytecode":{"object":"0x6080604052348015600f57600080fd5b50601680601d6000396000f3fe6080604052600080fdfea164736f6c634300080f000a","sourceMap":"218:665:79:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600080fdfea164736f6c634300080f000a","sourceMap":"218:665:79:-:0;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Richard Meissner - <richard@gnosis.pm>\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Executor - A contract that can execute transactions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/safe-contracts/contracts/base/Executor.sol\":\"Executor\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/safe-contracts/contracts/base/Executor.sol\":{\"keccak256\":\"0x4d3a900673473466bc27413fdbb11aae60b5580b792c49411f01544e0b24fe08\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://71ada0590998f47d1ee9759aa190c82d4b348d59a2f582747650d9720245a309\",\"dweb:/ipfs/Qmb9UudLoJpPutHVP9pXd1poP5CqFf5sxVFuYw14SYfRFk\"]},\"lib/safe-contracts/contracts/common/Enum.sol\":{\"keccak256\":\"0x473e45b1a5cc47be494b0e123c9127f0c11c1e0992a321ae5a644c0bfdb2c14f\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://948e6d5a8bd7377f7795b6e28584eab9be5c0a8db240bf5e606744a175238c3d\",\"dweb:/ipfs/QmQQaUmQfpuejV41jbxKSTgEBYYCcVTjCsDMgf2htgz6ej\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/safe-contracts/contracts/base/Executor.sol":"Executor"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/safe-contracts/contracts/base/Executor.sol":{"keccak256":"0x4d3a900673473466bc27413fdbb11aae60b5580b792c49411f01544e0b24fe08","urls":["bzz-raw://71ada0590998f47d1ee9759aa190c82d4b348d59a2f582747650d9720245a309","dweb:/ipfs/Qmb9UudLoJpPutHVP9pXd1poP5CqFf5sxVFuYw14SYfRFk"],"license":"LGPL-3.0-only"},"lib/safe-contracts/contracts/common/Enum.sol":{"keccak256":"0x473e45b1a5cc47be494b0e123c9127f0c11c1e0992a321ae5a644c0bfdb2c14f","urls":["bzz-raw://948e6d5a8bd7377f7795b6e28584eab9be5c0a8db240bf5e606744a175238c3d","dweb:/ipfs/QmQQaUmQfpuejV41jbxKSTgEBYYCcVTjCsDMgf2htgz6ej"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev","author":"Richard Meissner - <richard@gnosis.pm>","title":"Executor - A contract that can execute transactions"},"ast":{"absolutePath":"lib/safe-contracts/contracts/base/Executor.sol","id":59102,"exportedSymbols":{"Enum":[60115],"Executor":[59101]},"nodeType":"SourceUnit","src":"42:842:79","nodes":[{"id":59071,"nodeType":"PragmaDirective","src":"42:31:79","nodes":[],"literals":["solidity",">=","0.7",".0","<","0.9",".0"]},{"id":59072,"nodeType":"ImportDirective","src":"74:28:79","nodes":[],"absolutePath":"lib/safe-contracts/contracts/common/Enum.sol","file":"../common/Enum.sol","nameLocation":"-1:-1:-1","scope":59102,"sourceUnit":60116,"symbolAliases":[],"unitAlias":""},{"id":59101,"nodeType":"ContractDefinition","src":"218:665:79","nodes":[{"id":59100,"nodeType":"FunctionDefinition","src":"242:639:79","nodes":[],"body":{"id":59099,"nodeType":"Block","src":"424:457:79","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"},"id":59093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":59089,"name":"operation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59082,"src":"438:9:79","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":59090,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60115,"src":"451:4:79","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$60115_$","typeString":"type(contract Enum)"}},"id":59091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":60114,"src":"451:14:79","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$60114_$","typeString":"type(enum Enum.Operation)"}},"id":59092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"DelegateCall","nodeType":"MemberAccess","referencedDeclaration":60113,"src":"451:27:79","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"}},"src":"438:40:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":59097,"nodeType":"Block","src":"681:194:79","statements":[{"AST":{"nodeType":"YulBlock","src":"764:101:79","statements":[{"nodeType":"YulAssignment","src":"782:69:79","value":{"arguments":[{"name":"txGas","nodeType":"YulIdentifier","src":"798:5:79"},{"name":"to","nodeType":"YulIdentifier","src":"805:2:79"},{"name":"value","nodeType":"YulIdentifier","src":"809:5:79"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"820:4:79"},{"kind":"number","nodeType":"YulLiteral","src":"826:4:79","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"816:3:79"},"nodeType":"YulFunctionCall","src":"816:15:79"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"839:4:79"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"833:5:79"},"nodeType":"YulFunctionCall","src":"833:11:79"},{"kind":"number","nodeType":"YulLiteral","src":"846:1:79","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"849:1:79","type":"","value":"0"}],"functionName":{"name":"call","nodeType":"YulIdentifier","src":"793:4:79"},"nodeType":"YulFunctionCall","src":"793:58:79"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"782:7:79"}]}]},"evmVersion":"london","externalReferences":[{"declaration":59079,"isOffset":false,"isSlot":false,"src":"820:4:79","valueSize":1},{"declaration":59079,"isOffset":false,"isSlot":false,"src":"839:4:79","valueSize":1},{"declaration":59087,"isOffset":false,"isSlot":false,"src":"782:7:79","valueSize":1},{"declaration":59075,"isOffset":false,"isSlot":false,"src":"805:2:79","valueSize":1},{"declaration":59084,"isOffset":false,"isSlot":false,"src":"798:5:79","valueSize":1},{"declaration":59077,"isOffset":false,"isSlot":false,"src":"809:5:79","valueSize":1}],"id":59096,"nodeType":"InlineAssembly","src":"755:110:79"}]},"id":59098,"nodeType":"IfStatement","src":"434:441:79","trueBody":{"id":59095,"nodeType":"Block","src":"480:195:79","statements":[{"AST":{"nodeType":"YulBlock","src":"563:102:79","statements":[{"nodeType":"YulAssignment","src":"581:70:79","value":{"arguments":[{"name":"txGas","nodeType":"YulIdentifier","src":"605:5:79"},{"name":"to","nodeType":"YulIdentifier","src":"612:2:79"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"620:4:79"},{"kind":"number","nodeType":"YulLiteral","src":"626:4:79","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"616:3:79"},"nodeType":"YulFunctionCall","src":"616:15:79"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"639:4:79"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"633:5:79"},"nodeType":"YulFunctionCall","src":"633:11:79"},{"kind":"number","nodeType":"YulLiteral","src":"646:1:79","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"649:1:79","type":"","value":"0"}],"functionName":{"name":"delegatecall","nodeType":"YulIdentifier","src":"592:12:79"},"nodeType":"YulFunctionCall","src":"592:59:79"},"variableNames":[{"name":"success","nodeType":"YulIdentifier","src":"581:7:79"}]}]},"evmVersion":"london","externalReferences":[{"declaration":59079,"isOffset":false,"isSlot":false,"src":"620:4:79","valueSize":1},{"declaration":59079,"isOffset":false,"isSlot":false,"src":"639:4:79","valueSize":1},{"declaration":59087,"isOffset":false,"isSlot":false,"src":"581:7:79","valueSize":1},{"declaration":59075,"isOffset":false,"isSlot":false,"src":"612:2:79","valueSize":1},{"declaration":59084,"isOffset":false,"isSlot":false,"src":"605:5:79","valueSize":1}],"id":59094,"nodeType":"InlineAssembly","src":"554:111:79"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"execute","nameLocation":"251:7:79","parameters":{"id":59085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59075,"mutability":"mutable","name":"to","nameLocation":"276:2:79","nodeType":"VariableDeclaration","scope":59100,"src":"268:10:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59074,"name":"address","nodeType":"ElementaryTypeName","src":"268:7:79","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59077,"mutability":"mutable","name":"value","nameLocation":"296:5:79","nodeType":"VariableDeclaration","scope":59100,"src":"288:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59076,"name":"uint256","nodeType":"ElementaryTypeName","src":"288:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59079,"mutability":"mutable","name":"data","nameLocation":"324:4:79","nodeType":"VariableDeclaration","scope":59100,"src":"311:17:79","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59078,"name":"bytes","nodeType":"ElementaryTypeName","src":"311:5:79","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":59082,"mutability":"mutable","name":"operation","nameLocation":"353:9:79","nodeType":"VariableDeclaration","scope":59100,"src":"338:24:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"},"typeName":{"id":59081,"nodeType":"UserDefinedTypeName","pathNode":{"id":59080,"name":"Enum.Operation","nodeType":"IdentifierPath","referencedDeclaration":60114,"src":"338:14:79"},"referencedDeclaration":60114,"src":"338:14:79","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$60114","typeString":"enum Enum.Operation"}},"visibility":"internal"},{"constant":false,"id":59084,"mutability":"mutable","name":"txGas","nameLocation":"380:5:79","nodeType":"VariableDeclaration","scope":59100,"src":"372:13:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59083,"name":"uint256","nodeType":"ElementaryTypeName","src":"372:7:79","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"258:133:79"},"returnParameters":{"id":59088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59087,"mutability":"mutable","name":"success","nameLocation":"415:7:79","nodeType":"VariableDeclaration","scope":59100,"src":"410:12:79","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":59086,"name":"bool","nodeType":"ElementaryTypeName","src":"410:4:79","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"409:14:79"},"scope":59101,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[],"canonicalName":"Executor","contractDependencies":[],"contractKind":"contract","documentation":{"id":59073,"nodeType":"StructuredDocumentation","src":"104:114:79","text":"@title Executor - A contract that can execute transactions\n @author Richard Meissner - <richard@gnosis.pm>"},"fullyImplemented":true,"linearizedBaseContracts":[59101],"name":"Executor","nameLocation":"227:8:79","scope":59102,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":79}