{"abi":[{"type":"function","name":"onApprove","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_spender","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onApprove(address,address,uint256,bytes)":"4273ca16","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onApprove\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/L1/OnApprove.sol\":\"OnApprove\"},\"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\":{\"src/L1/OnApprove.sol\":{\"keccak256\":\"0x40cee21f13053d860ab0aaaf77ff596f7131cb39ab21963d076e9e276492d31a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b384a3225e25c0232aaa775d0f4df514ad7423228810e157ba921b736421c6b1\",\"dweb:/ipfs/QmcPTPwvhqtHLQAgntzVdqeptDDgmnEafnZwgAK7D7AoV1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onApprove","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"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":{"src/L1/OnApprove.sol":"OnApprove"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"src/L1/OnApprove.sol":{"keccak256":"0x40cee21f13053d860ab0aaaf77ff596f7131cb39ab21963d076e9e276492d31a","urls":["bzz-raw://b384a3225e25c0232aaa775d0f4df514ad7423228810e157ba921b736421c6b1","dweb:/ipfs/QmcPTPwvhqtHLQAgntzVdqeptDDgmnEafnZwgAK7D7AoV1"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"src/L1/OnApprove.sol","id":91829,"exportedSymbols":{"OnApprove":[91828]},"nodeType":"SourceUnit","src":"32:452:146","nodes":[{"id":91794,"nodeType":"PragmaDirective","src":"32:23:146","nodes":[],"literals":["solidity","0.8",".15"]},{"id":91828,"nodeType":"ContractDefinition","src":"57:426:146","nodes":[{"id":91814,"nodeType":"FunctionDefinition","src":"91:198:146","nodes":[],"body":{"id":91813,"nodeType":"Block","src":"167:122:146","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":91811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":91805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":91801,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91796,"src":"184:11:146","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":91802,"name":"OnApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91828,"src":"199:9:146","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OnApprove_$91828_$","typeString":"type(contract OnApprove)"}},"id":91803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"onApprove","nodeType":"MemberAccess","referencedDeclaration":91827,"src":"199:19:146","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function OnApprove.onApprove(address,address,uint256,bytes calldata) returns (bool)"}},"id":91804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"199:28:146","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"184:43:146","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":91810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":91806,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91796,"src":"231:11:146","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":91807,"name":"OnApprove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91828,"src":"246:9:146","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_OnApprove_$91828_$","typeString":"type(contract OnApprove)"}},"id":91808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":91814,"src":"246:27:146","typeDescriptions":{"typeIdentifier":"t_function_declaration_pure$_t_bytes4_$returns$_t_bool_$","typeString":"function OnApprove.supportsInterface(bytes4) pure returns (bool)"}},"id":91809,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"selector","nodeType":"MemberAccess","src":"246:36:146","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"231:51:146","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"184:98:146","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":91800,"id":91812,"nodeType":"Return","src":"177:105:146"}]},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"100:17:146","parameters":{"id":91797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91796,"mutability":"mutable","name":"interfaceId","nameLocation":"125:11:146","nodeType":"VariableDeclaration","scope":91814,"src":"118:18:146","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":91795,"name":"bytes4","nodeType":"ElementaryTypeName","src":"118:6:146","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"117:20:146"},"returnParameters":{"id":91800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91799,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":91814,"src":"161:4:146","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":91798,"name":"bool","nodeType":"ElementaryTypeName","src":"161:4:146","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"160:6:146"},"scope":91828,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":91827,"nodeType":"FunctionDefinition","src":"295:186:146","nodes":[],"functionSelector":"4273ca16","implemented":false,"kind":"function","modifiers":[],"name":"onApprove","nameLocation":"304:9:146","parameters":{"id":91823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91816,"mutability":"mutable","name":"_owner","nameLocation":"331:6:146","nodeType":"VariableDeclaration","scope":91827,"src":"323:14:146","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91815,"name":"address","nodeType":"ElementaryTypeName","src":"323:7:146","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91818,"mutability":"mutable","name":"_spender","nameLocation":"355:8:146","nodeType":"VariableDeclaration","scope":91827,"src":"347:16:146","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91817,"name":"address","nodeType":"ElementaryTypeName","src":"347:7:146","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91820,"mutability":"mutable","name":"_amount","nameLocation":"381:7:146","nodeType":"VariableDeclaration","scope":91827,"src":"373:15:146","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91819,"name":"uint256","nodeType":"ElementaryTypeName","src":"373:7:146","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":91822,"mutability":"mutable","name":"_data","nameLocation":"413:5:146","nodeType":"VariableDeclaration","scope":91827,"src":"398:20:146","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":91821,"name":"bytes","nodeType":"ElementaryTypeName","src":"398:5:146","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"313:111:146"},"returnParameters":{"id":91826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91825,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":91827,"src":"475:4:146","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":91824,"name":"bool","nodeType":"ElementaryTypeName","src":"475:4:146","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"474:6:146"},"scope":91828,"stateMutability":"nonpayable","virtual":true,"visibility":"external"}],"abstract":true,"baseContracts":[],"canonicalName":"OnApprove","contractDependencies":[],"contractKind":"contract","fullyImplemented":false,"linearizedBaseContracts":[91828],"name":"OnApprove","nameLocation":"75:9:146","scope":91829,"usedErrors":[]}],"license":"MIT"},"id":146}